На OSX 10.8 xcrun (нет такого файла или каталога)

при выполнении gem install jekyll на OSX 10.8 с установленным пакетом инструментов автономной командной строки с сайта разработчика Apple (без Xcode) я сталкиваюсь со следующей ошибкой:

создание собственных расширений. Это может занять некоторое время...

ошибка: ошибка установки 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 может использоваться для обхода поиска кэша."но ничто из этого, похоже, не имеет никакого эффекта: единственным выходом остается выше...

устранение: следуя совету Неда Дейли ниже, Я заменил xcrun скриптом оболочки, чтобы просто вызвать приведенные аргументы:

#!/bin/bash
$@

4 ответов


к сожалению, по крайней мере, в последний раз, когда я играл с ним, я обнаружил, что вы действительно не можете использовать xcrun с автономной Command Line Tools пакета. По-видимому, он не был разработан для этого случая использования; автономный пакет является довольно недавним нововведением с Xcode 4. Если продукт, который вы пытаетесь установить, действительно зависит от xcrun, вам может потребоваться установить полный Xcode.app рассылки, чтобы обойти его. Это или изменить Makefile и др. дистрибутива, чтобы не использовать xcrun. Или, возможно, (непроверенный), создайте некоторые каталоги и/или символические ссылки для fake 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-версии.

Это ужасный хак, но Я заменил /usr/bin/xcodebuild скриптом оболочки, который просто повторил "4.3" и смог успешно установить mecurial.