AppleのDeveloperサイトからスタンドアロンのコマンドラインツールパッケージがインストールされている(Xcodeなし)OSX10.8でgem install jekyll
を実行すると、次のエラーが発生します。
ネイティブ拡張の構築。これにはしばらく時間がかかる場合があります...
エラー:jekyllのインストール中にエラーが発生しました:
エラー:gemネイティブ拡張のビルドに失敗しました。
…
xcrun cc -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/Ruby/1.8/universal-darwin12.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/Ruby/1.8/universal-darwin12.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -Arch i386 -Arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common -c porter.c
xcrun: Error: failed to exec real xcrun. (No such file or directory)
gccがインストールされています:
$ which cc
/usr/bin/cc
xcrunのルックアップパスが設定されます。
xcode-select -print-path
/usr/bin
それでも、どの引数を試しても、xcrunは常に戻ります
xcrun:エラー:実際のxcrunの実行に失敗しました。 (そのようなファイル、又はディレクトリはありません)
man xcrun
は「xcrunがxcrunという名前で呼び出された場合、フラグ-logおよび-verboseは便利なデバッグ支援です。フラグ-no-cacheを使用してキャッシュルックアップをバイパスできます。」しかし、これは何の効果もないようです。唯一の出力は上記のままです…
解決策:以下のNed Deilyのアドバイスに従って、xcrunをシェルスクリプトに置き換えて、指定された引数を呼び出すだけです。
#!/bin/bash
$@
残念ながら、少なくとも前回それを試してみたとき、スタンドアロンのCommand Line Tools
パッケージだけではxcrun
を実際に使用できないことがわかりました。どうやらそのユースケース向けに設計されたものではありません。スタンドアロンパッケージは、Xcode4のごく最近の革新です。インストールしようとしている製品が本当にxcrun
に依存している場合、それを回避するために完全なXcode.app
ディストリビューションをインストールする必要があるかもしれません。または、xcrun
を使用しないようにディストリビューションのMakefileなどを変更します。または、おそらく(テストされていない)、ディレクトリやシンボリックリンクを作成して、xcrun
を偽造してXcode.app
がインストールされていると思い込ませます。これは厄介なハックです。
コンソールで次のコマンドを入力します。
Sudo xcode-select -switch /usr/bin
Sudo mv /usr/bin/xcrun /usr/bin/xcrun-orig
Sudo vim /usr/bin/xcrun
ダミーのxcrunファイルに次のように入力します。
#!/bin/sh
$@
次に、実行可能にします。
Sudo chmod 755 /usr/bin/xcrun
コマンドラインツールがインストールされていても、xcode-selectは奇妙です。 /usr/bin
ではなく、XCodeバンドルを指している必要があります。
$ xcode-select -print-path
/Applications/Xcode.app/Contents/Developer
次のようにXcodeに切り替えます。
$ Sudo xcode-select --switch /Applications/Xcode.app
Brew installhgで問題が発生しました。 xcodebuild-versionの出力で窒息していました。
これは恐ろしいハックですが、/ usr/bin/xcodebuildを、「4.3」をエコーしたばかりのシェルスクリプトに置き換え、mecurialを正常にインストールできました。