Lion へアップグレードしたら Homebrew が動かなくなったりもしたけれど、私はげんきです
Snow Leopard の Spaces が気に入っていたので、ずっと Snow Leopard を愛用していましたが、Xcode 4.3 を使いたいがために、先日ようやく Lion にアップグレードしました。
予想していたよりもスムーズに移行できましたが、Homebrew が動かなくなりました。もはや世間の関心が Mountain Lion に移っている今までは、あまり役に立たない内容かもしれませんが、現象と対処方法をメモしておきます。
**Lion へアップグレードしたら Homebrew が動かなくなったりもしたけれど、私はげんきです
+現象 +困ったときの brew doctor +Command Line Tools for Xcode のインストール +Homebrew のアップデート +不要なファイルの退避 (1) +不要なファイルの退避 (2) +不要なファイルの退避 (3) +brew link +確認 <<
*1. 現象
先日社内で Git 脱初心者勉強会というのがあって、そこで「tig」という、ターミナルから使える Git ブラウザを教えていただいたので Homebrew からインストールしようとしたら、下記のエラーが発生しました。
-コンソールから使える git ブラウザ、tig が超便利 - #生存戦略 、それは - subtech
[@ANGELINA ~]$ brew install tig ==> Downloading http://jonas.nitro.dk/tig/releases/tig-1.0.tar.gz
################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/tig/1.0 --sysconfdir=/usr/local/etc
checking for gcc... /usr/bin/xcrun clang
checking whether the C compiler works... no
configure: error: in /private/tmp/homebrew-tig-1.0-ADWf/tig-1.0':
configure: error: C compiler cannot create executables
See
config.log' for more details
config.log was copied to /Users/inouetakuya/Library/Logs/Homebrew
==> Build Environment
CPU: quad-core 64-bit arrandale
MacOS: 10.7.4-x86_64
Xcode: 4.3.3
CC: /usr/bin/xcrun clang => /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
CXX: /usr/bin/xcrun clang++ => /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
LD: /usr/bin/xcrun clang => /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
CFLAGS: -Os -w -pipe -march=native -Qunused-arguments
CXXFLAGS: -Os -w -pipe -march=native -Qunused-arguments
MAKEFLAGS: -j4
Error: Failed executing: ./configure --prefix=/usr/local/Cellar/tig/1.0 --sysconfdir=/usr/local/etc (tig.rb:9)
If `brew doctor' does not help diagnose the issue, please report the bug:
https://github.com/mxcl/homebrew/wiki/reporting-bugs
We saved the configure log, please gist it if you report the issue:
~/Library/Logs/Homebrew/config.log
<<
*2. 困ったときの brew doctor
前述のエラーメッセージにも出てきていますが、Homebrew がうまく動いてくれないときは、brew doctor というコマンドを使うとその原因を教えてくれたりします。
[@ANGELINA ~]$ brew doctor Error: You have no /usr/bin/cc. This means you probably can't build anything. You need to install the Command Line Tools for Xcode. You can either download this from http://connect.apple.com or install them from inside Xcode's Download preferences. Homebrew does not require all of Xcode! You only need the Command Line Tools package!
Error: Your Homebrew is outdated You haven't updated for at least 24 hours, this is a long time in brewland!
Error: Unbrewed dylibs were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.
Unexpected dylibs: /usr/local/lib/libqmi_api.dylib
Error: Unbrewed .pc files were found in /usr/local/lib/pkgconfig. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.
Unexpected .pc files: /usr/local/lib/pkgconfig/libavcodec.pc /usr/local/lib/pkgconfig/libavdevice.pc /usr/local/lib/pkgconfig/libavformat.pc /usr/local/lib/pkgconfig/libavutil.pc /usr/local/lib/pkgconfig/libswscale.pc
Error: Unbrewed static libraries were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.
Unexpected static libraries: /usr/local/lib/libavcodec.a /usr/local/lib/libavdevice.a /usr/local/lib/libavformat.a /usr/local/lib/libavutil.a /usr/local/lib/libswscale.a Error: You have unlinked kegs in your Cellar Leaving kegs unlinked can lead to build-trouble and cause brews that depend on those kegs to fail to run properly once built. git mysql51 pidof wget <<
なんかいろいろ問題がでました...(汗)
*3. Command Line Tools for Xcode のインストール
まずは、出てきたエラーをひとつずつ上から解決していくことにして。
Error: You have no /usr/bin/cc. This means you probably can't build anything. You need to install the Command Line Tools for Xcode. You can either download this from http://connect.apple.com or install them from inside Xcode's Download preferences. Homebrew does not require all of Xcode! You only need the Command Line Tools package! <<
Command Line Tools for Xcode なるものをインストールせよ、と指示があるので、言われるままに下記 URL からダウンロードしてインストールします。
-https://developer.apple.com/downloads/index.action
**(2012年7月16日 追記)
Command Line Tools for Xcode のダウンロードには、Apple Developer への登録が必要です。これは全部半角英数で登録しないといけないし面倒だという方のために、別の方法が用意されていました。
(1) Xcode を起動して、Preferences… > Downloads
(2) Command Line Tools を選択してインストール
ちなみに、Command Line Tools for Xcode というのは、Xcode 4.3 からコマンドライン用のツールが分離してできたものみたいですね。iPhone アプリ開発とかしない人はこれだけ入れて使っているようです。容量節約になるとか。
-XcodeからCommand Line Tools for Xcodeに切り替えたらHDD使用容量が7GB減った - Glide Note - グライドノート
Command Line Tools for Xcode をインストール後に再度 brew doctor をしたら、該当エラーは消えていました。
*4. Homebrew のアップデート
Error: Your Homebrew is outdated You haven't updated for at least 24 hours, this is a long time in brewland! <<
ここも言われるまま brew update しました。
|shell| [@MATHILDA ~]$ brew --version 0.9 [@MATHILDA ~]$ brew update Updated Homebrew from d0d65f03 to 4de6cfcc. ... ||<
*5. 不要なファイルの退避 (1)
Error: Unbrewed dylibs were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.
Unexpected dylibs: /usr/local/lib/libqmi_api.dylib <<
なにやら邪魔なファイルがあるようなので、退避させました。
|shell| $ mkdir -p /usr/local/lib $ mv /usr/local/lib/libqmi_api.dylib /usr/local/lib/ ||<
*6. 不要なファイルの退避 (2)
Error: Unbrewed .pc files were found in /usr/local/lib/pkgconfig. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.
Unexpected .pc files: /usr/local/lib/pkgconfig/libavcodec.pc /usr/local/lib/pkgconfig/libavdevice.pc /usr/local/lib/pkgconfig/libavformat.pc /usr/local/lib/pkgconfig/libavutil.pc /usr/local/lib/pkgconfig/libswscale.pc <<
同じく退避。
|shell| $ mkdir -p /usr/local/lib/pkgconfig $ mv /usr/local/lib/pkgconfig/libavcodec.pc /usr/local/lib/pkgconfig $ mv /usr/local/lib/pkgconfig/libavdevice.pc /usr/local/lib/pkgconfig $ mv /usr/local/lib/pkgconfig/libavformat.pc /usr/local/lib/pkgconfig $ mv /usr/local/lib/pkgconfig/libavutil.pc /usr/local/lib/pkgconfig $ mv /usr/local/lib/pkgconfig/libswscale.pc /usr/local/lib/pkgconfig ||<
*7. 不要なファイルの退避 (3)
Error: Unbrewed static libraries were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted.
Unexpected static libraries: /usr/local/lib/libavcodec.a /usr/local/lib/libavdevice.a /usr/local/lib/libavformat.a /usr/local/lib/libavutil.a /usr/local/lib/libswscale.a <<
こちらも同じく退避。一体いつできたものなのか...?
|shell| $ mv /usr/local/lib/libavcodec.a /usr/local/lib $ mv /usr/local/lib/libavdevice.a /usr/local/lib $ mv /usr/local/lib/libavformat.a /usr/local/lib $ mv /usr/local/lib/libavutil.a /usr/local/lib $ mv /usr/local/lib/libswscale.a /usr/local/_lib ||<
*8. brew link
Error: You have unlinked kegs in your Cellar Leaving kegs unlinked can lead to build-trouble and cause brews that depend on those kegs to fail to run properly once built.
cmake
git
nkf
pidof
tree
wget
<<
一部のツールが unlink になっていたので、brew link しました。
|shell| $ brew link cmake Linking /usr/local/Cellar/cmake/2.8.5... 603 symlinks created
$ brew link git Linking /usr/local/Cellar/git/1.7.6... 781 symlinks created
$ brew link nkf Linking /usr/local/Cellar/nkf/2.1.0... 3 symlinks created
$ brew link pidof Linking /usr/local/Cellar/pidof/0.1.4... 0 symlinks created
$ brew link tree Linking /usr/local/Cellar/tree/1.5.3... 0 symlinks created
$ brew link wget Linking /usr/local/Cellar/wget/1.12... 0 symlinks created ||<
*9. 確認
ここまで作業を終えたところで、確認のために brew doctor
|shell| $ brew doctor Your system is raring to brew. (brew したくてウズウズしています) ||<
もうエラーはないようです。その後、brew install tig をしたら、今度はうまくいきました(解決)