2013-09-06 12 views
25

easy_installまたはpipでpsycopg2をインストールしようとしましたが、端末がxcrunとlipoの間のループに詰まってしまいました。xcrun/lipoがOS X MavericksとXCode 4.xでフリーズします。

sidwyn$ sudo easy_install psycopg2 
Searching for psycopg2 
Reading https://pypi.python.org/simple/psycopg2/ 
Reading http://initd.org/psycopg/ 
Reading http://initd.org/projects/psycopg2 
Best match: psycopg2 2.5.1 
Downloading https://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.5.1.tar.gz#md5=1b433f83d50d1bc61e09026e906d84c7 
Processing psycopg2-2.5.1.tar.gz 
Writing /tmp/easy_install-dTk7cd/psycopg2-2.5.1/setup.cfg 
Running psycopg2-2.5.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dTk7cd/psycopg2-2.5.1/egg-dist-tmp-4jaXas 
clang: warning: argument unused during compilation: '-mno-fused-madd' 

これはxcrunとlipoの間で跳ね返り、このループで永久に固定されます。これについてのいくつかの洞察を感謝します。

私はOS X Mavericks 10.9の最新ビルドです。

答えて

50

より適切な修正は次のとおりです。

ln /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo 
xcrun -k lipo 

理由:XFXの修正は可能性のXcodeの将来のバージョンでは、あなたのツールチェインを選択するXcodeの選択を使用することができるという壊れます。

プレマーベリックスとXcode 5.xのは/ usr/binに/リポは実際リポツールの実際場所のようです(cat /usr/bin/lipoを試してみてください - 大きなバイナリのように見えます)。 Mavericks/Xcode 5.xでは、lipoはXcodeDefault.xctoolchainに移動され、/usr/bin/lipoのバイナリはxcrun liponm /usr/bin/lipo参照)を呼び出すように見える薄いラッパーで、xcode-selectに基づいてlipoの場所が検索されます。

新しいバージョンのxcode-selectおよび/またはMavericksは、/ usr/bin/lipoをラッパーバージョンに置き換えている可能性があります。 4.xツールチェインxcode-selectでlipoを使用しようとすると、古いバージョンのXcodeにはツールが含まれていないので、機能しません。幸いにも、それは何らかの理由でiPhoneOS.platformにまだ含まれています。そうでなければ、おそらく破損していない< = 10.8マシンから引き抜かなければならないでしょう。

4 - > 5スイッチで、Developer/usr/binとDeveloper/Toolchains/XcodeDefault.xctoolchain/usr/binの間に多くのツールが混在しているように見えます。それほど頻繁に使用されないコマンドラインツールでも同様の問題がありました。

最後に、ツールが見つからないときにxcrunがハングアップするという事実は、リンゴのバグのように単純で単純です。

+1

このqには、mavericks/xcode/lipo/xcrunタグが付いているはずです。おそらくPython/etcではなく、Pythonの問題ではなくビルドツールチェーンの問題です。 – scztt

+0

もう1つの注意点 - 上記の後にリポがまだハングしている場合、 'xcrun -k lipo'はキャッシュされた(不正な)場所をクリアします。そして、恐ろしいことに、あなたのビルドが掛かっている間にこれを行うと、それはすぐに解き放たれます。 – scztt

+6

あなたは私のヒーローです。 –

3

私は同じ問題を抱えていますが、/ usr/bin/lipoをMax OS 10.7の古いものに置き換えて修正しました。

更新: /usr/bin/lipoを/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/binに置き換えてください。 Xcodeアプリケーションまたはimgファイルが必要です。

+0

これにはどのような影響がありますか? – Bartek

12

この1つは私の作品:

xcode-select -–install 
sudo mv /usr/bin/lipo /usr/bin/lipo.orig 
sudo ln -s /Library/Developer/CommandLineTools/usr/bin/lipo /usr/bin 
+1

これは '--install'でしょうか? – simbabque

+0

はい、ありがとうございます。確かに – avdyushin

0

私は私のTimeMachineバックアップ(OSX 10.9にアップデートする前にタイムスタンプ)から/usr/bin/lipoを回復しました。 4.xはうまくいきました。アーカイブはもはやハングしませんでした。

3

最も単純な解決策はおそらくXCode 5.xにアップグレードすることです。

+0

。クライアントと一緒にこの作業をしなければなりませんでした。彼らには、最新かつ最高のコマンドラインツールがインストールされていましたが、XCode 4.1.xの古いバージョンがありました.XCodeをアップグレードした後、この問題はなくなりました。非常に奇妙な。 – defbyte

+0

私はマーベリックスを実行しており、この問題がありました。 Xcode 6にアップグレードすると修正されました。 – tronbabylove

関連する問題