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

Marvericksにアップグレードしたらbrewで入れたコマンドが使えなくなっていた。

brew lsの実行結果は以下でbrewは消えてるコマンド達を認識している。

1
2
3
4
5
vimshell% brew ls
ack           leiningen       ossp-uuid
antlr         libevent        pcre
...
...

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

1
2
$ 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に書かれていた

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

1
2
3
4
5
$ brew unlink ${PACKAGE} --force
Error: ${PACKAGE} has multiple installed versions

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

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

comments powered by Disqus