OSX 10.8 xcrun (нет такого файла или каталога)
При выполнении gem install jekyll
на OSX 10.8 с установленным автономным пакетом инструментов командной строки с сайта разработчика Apple (без Xcode) я сталкиваюсь со следующей ошибкой:
Сборка собственных расширений. Это может занять некоторое время...
ОШИБКА: Ошибка при установке jekyll:
ОШИБКА: не удалось создать собственное расширение для гема.
...
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 может использоваться для обхода поиска в кэше". но ничто из этого, кажется, не имеет никакого эффекта: единственный выход остается выше...
Решение: следуя совету Неда Дейли ниже, я заменил xcrun сценарием оболочки, чтобы просто вызывать данные аргументы:
#!/bin/bash
$@
4 ответа
К сожалению, по крайней мере в последний раз, когда я играл с ним, я обнаружил, что вы действительно не можете использовать xcrun
только с автономным Command Line Tools
пакет. Это очевидно не было разработано для того случая использования; автономный пакет является довольно недавним нововведением с Xcode 4. Если продукт, который вы пытаетесь установить, действительно зависит от xcrun
, вам может понадобиться установить полный Xcode.app
Распределение, чтобы обойти это. Это, или измените Makefile и др. Дистрибутива, чтобы не использовать xcrun
, Или, возможно (не проверено), создать несколько каталогов и / или символических ссылок для подделки 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 выглядит странно. Он должен указывать на ваш пакет XCode, а не /usr/bin
:
$ xcode-select -print-path
/Applications/Xcode.app/Contents/Developer
Переключите его на Xcode следующим образом:
$ sudo xcode-select --switch /Applications/Xcode.app
У меня были проблемы с brew install hg. Он задыхался от вывода xcodebuild -version.
Это ужасный хак, но я заменил /usr/bin/xcodebuild сценарием оболочки, который только что повторил "4.3" и смог успешно установить mecurial.