鱒身(Masu_mi)のブログ

知った事をメモする場所。

MarvericksにアップグレードしたらHomebrewのリンクが消えた

Marvericks にアップグレードしたら brew で入れたコマンドが使えなくなっていた。 brew ls の実行結果は以下で brew は消えてるコマンド達を認識している。

vimshell% brew ls
ack                   leiningen               ossp-uuid
antlr                 libevent                pcre
...
...

でどうなっているか知りたくて以下を見たら。 brew 以外がいなかった。

$ ls /usr/local/bin/
brew

link が消えているという事で以下を実行した。

$ brew list | xargs -I{} brew upgrade {}
$ brew list | xargs -I{} brew unlink {} --force
$ brew list | xargs -I{} brew link {} --force

これで殆どのコマンドが復活したけれど、いくつか unlink に失敗するパッケージがあった。 これは unlink するファイルを homebrew が解決出来にないことを示している。 理由は Qiitaに書かれていた

これらのパッケージは以下の様に一旦アンインストールして入れ直した。

$ brew unlink ${PACKAGE} --force
Error: ${PACKAGE} has multiple installed versions

$ brew uninstall ${PACKAGE}
$ brew install ${PACKAGE}

だけど ghc, gcc が上手く行かずに一度 uninstall したままビルド出来ていない。 ghcgcc 依存なので gcc が解決すれば良いのだけど解決出来ずにいったん放置になっている。