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.

Другие вопросы по тегам