xcrun/lipo зависает с OS X Mavericks и XCode 4.x
Попытка установить psycopg2 с помощью easy_install или pip, и терминал застрял в петле между xcrun и lipo.
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, последняя сборка.
5 ответов
Более подходящее решение:
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-select для выбора вашей цепочки инструментов в будущих версиях Xcode.
Pre-Mavericks и Xcode 5.x, / usr / bin / lipo, кажется, являются фактическим местоположением фактического инструмента lipo (попробуйте cat /usr/bin/lipo
- выглядит как большой двоичный файл). В Mavericks / Xcode 5.x lipo был перемещен в XcodeDefault.xctoolchain, а бинарный файл в /usr/bin/lipo
это тонкая оболочка, которая, кажется, просто позвонить xcrun lipo
(увидеть nm /usr/bin/lipo
), который, в свою очередь, находит местоположение липо на основе xcode-select
,
Возможно, новые версии xcode-select
и / или Mavericks замените / usr / bin / lipo версией оболочки. Если вы попробуете использовать lipo с 4.x xcode-select
d, это не будет работать, так как инструмент не содержится в более старых версиях Xcode. К счастью, по какой-то причине он все еще включен в платформу iPhoneOS. В противном случае вам, вероятно, придется извлечь его из не поврежденного компьютера с версией <=10,8.
Похоже, что было много перемешивания инструментов между Developer/usr/bin и Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin в переключателе 4->5 - меня не удивит, если будут подобные проблемы с другие, менее часто используемые инструменты командной строки.
Наконец, тот факт, что xcrun зависает, когда не может найти инструмент, кажется просто яблочной ошибкой.
Этот работает для меня:
xcode-select -–install
sudo mv /usr/bin/lipo /usr/bin/lipo.orig
sudo ln -s /Library/Developer/CommandLineTools/usr/bin/lipo /usr/bin
Самым простым решением, вероятно, является обновление до XCode 5.x.
Я получил ту же проблему, исправленную путем замены / usr / bin / lipo на старую из Max OS 10.7.
Обновление: замените / usr / bin / lipo на /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin. Вам нужно приложение Xcode или файл img.
Я восстановил /usr/bin/lipo
от моего TimeMachine
резервное копирование (отметка времени перед обновлением до OSX 10.9). затем XCode
4.х работал нормально, архивация больше не зависала.