読者です 読者をやめる 読者になる 読者になる

彼女からは、おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

Lion へアップグレードしたら Homebrew が動かなくなったりもしたけれど、私はげんきです

Mac

Snow Leopard の Spaces が気に入っていたので、ずっと Snow Leopard を愛用していましたが、Xcode 4.3 を使いたいがために、先日ようやく Lion にアップグレードしました。

予想していたよりもスムーズに移行できましたが、Homebrew が動かなくなりました。もはや世間の関心が Mountain Lion に移っている今までは、あまり役に立たない内容かもしれませんが、現象と対処方法をメモしておきます。

Lion へアップグレードしたら Homebrew が動かなくなったりもしたけれど、私はげんきです

  1. 現象
  2. 困ったときの brew doctor
  3. Command Line Tools for Xcode のインストール
  4. Homebrew のアップデート
  5. 不要なファイルの退避 (1)
  6. 不要なファイルの退避 (2)
  7. 不要なファイルの退避 (3)
  8. brew link
  9. 確認

1. 現象

先日社内で Git 脱初心者勉強会というのがあって、そこで「tig」という、ターミナルから使える Git ブラウザを教えていただいたので Homebrew からインストールしようとしたら、下記のエラーが発生しました。

[@ANGELINA ~]$ brew search tig
tig tiger-vnc


[@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 からダウンロードしてインストールします。

(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 アプリ開発とかしない人はこれだけ入れて使っているようです。容量節約になるとか。

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 しました。

[@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

なにやら邪魔なファイルがあるようなので、退避させました。

$ 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

同じく退避。

$ 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

こちらも同じく退避。一体いつできたものなのか...?

$ 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 しました。

$ 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

$ brew doctor
Your system is raring to brew.
(brew したくてウズウズしています)

もうエラーはないようです。その後、brew install tig をしたら、今度はうまくいきました(解決)