2012-10-24 18 views
25

Podczas wykonywania gem install jekyll na OSX 10.8 z autonomicznym Command Line Tools opakowania od strony programisty Apple zainstalowana (nie Xcode), biegnę w następujący błąd:OSX 10.8 xcrun (Nie ma takiego pliku lub katalogu)

Building native extensions. This could take a while...

ERROR: Error installing jekyll:

ERROR: Failed to build gem native extension.

...

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 jest zainstalowany:

$ which cc 
/usr/bin/cc 

ścieżka look-up dla xcrun jest ustawiona:

xcode-select -print-path 
/usr/bin 

jeszcze bez względu na argumenty i próbować, xcrun zawsze zwróci

xcrun: Error: failed to exec real xcrun. (No such file or directory)

man xcrun brzmi: „Kiedy xcrun jest wywoływana z nazwą xcrun, flagi -log i -verbose są przydatne pomoce do debugowania. Flaga -no-cache mogą być wykorzystywane do obejścia cache odnośnika „, ale nic z tego nie wydaje się mieć żadnego wpływu. Jedynym wyjście pozostaje powyżej ...

Rozwiązanie: następującą radę Ned Deily jest poniżej, mam wymienić xcrun ze skryptu powłoki po prostu zadzwonić podane argumenty:

#!/bin/bash 
[email protected] 
+0

Przez „Command Line Narzędzia zainstalowane ", czy masz na myśli, że masz tylko autonomiczny pakiet" Narzędzia linii poleceń "zainstalowany z witryny Apple Developer czy zainstalowałeś 'Xcode.app' czy zainstalowałeś Xcode.app, a następnie zainstalowałeś jego komponent' Command Line Tools' z menu 'Xcode.app'' Preferencje'? –

+0

Samodzielny pakiet ze strony programistów Apple. - Zmodyfikowałem pytanie, aby było to bardziej jasne. Przepraszam za zamieszanie. –

+0

Łatwo było przesłonić moją ścieżkę: 'export PATH = $ HOME/local/bin: $ PATH', aby określić plik override' ~/local/bin/xcrun', aby dołączyć hack. Musiałem też uruchomić 'sudo xcode-select -switch/usr/bin', aby dopasować' -print-path'. – chrischris

Odpowiedz

24

Niestety, co najmniej raz ostatni grałem z nim, znalazłem naprawdę nie można używać xcrun tylko z autonomicznym Command Line Tools opakowaniu. To najwyraźniej nie zostało zaprojektowane dla tego przypadku użycia; samodzielny pakiet to całkiem nowa innowacja z Xcode 4. Jeśli produkt, który próbujesz zainstalować, naprawdę zależy od xcrun, może zajść potrzeba zainstalowania pełnej dystrybucji Xcode.app, aby ominąć to miejsce. To lub zmodyfikuj plik Makefile i wsp., Aby nie używać xcrun. Lub, być może, (untested), utwórz kilka katalogów i/lub dowiązań symbolicznych do sfałszowania xcrun w myślenie, że masz zainstalowaną Xcode.app - niechlujny hack.

+11

Co za brudny hack! Zastanawiam się, kiedy wróci mnie ugryźć: Zastąpiłem xcruna skryptem powłoki dwurzędowej: #!/Bin/bash $ @ –

+1

Heh. Inna sprawa: autonomiczne narzędzia wiersza poleceń nie udostępniają zestawów SDK, takich jak pełny kod Xcode. Jeśli więc budujesz coś, co wymaga zestawu SDK dla wcześniejszego poziomu systemu operacyjnego, musisz zainstalować pełną wersję Xcode. –

+2

Wow. Ten hack pracował dla mnie! To nie jest ładne, ale lepsze niż instalowanie w trakcie gówna bzdur, których nie potrzebuję. –

12

Nawet po zainstalowaniu narzędzia wiersza poleceń, Twój Xcode-select jest dziwne powinno być skierowane do swojego XCode wiązki, nie /usr/bin.

$ xcode-select -print-path 
/Applications/Xcode.app/Contents/Developer 

Włącz go Xcode tak:

$ sudo xcode-select --switch /Applications/Xcode.app 
+4

Mam zainstalowane narzędzia wiersza poleceń, a nie Xcode. Ustawienie ścieżki do/usr/bin było dla mnie najbardziej sensowne, ponieważ kompilatory tam się znajdują ... przełączanie skutkuje tym samym błędem: 'xcode-select: Błąd: ścieżka" /Aplikacje/Xcode.app "nie jest katalogiem." –

0

Wystąpił problem z napisem instaluj hg. Dławił się na wyjściu xcodebuild -version.

To straszny hack, ale zastąpiłem/usr/bin/xcodebuild skryptem powłoki, który po prostu powtórzył "4.3" i był w stanie pomyślnie zainstalować mecurial.

18

Wpisz tych poleceń w konsoli:

sudo xcode-select -switch /usr/bin 
sudo mv /usr/bin/xcrun /usr/bin/xcrun-orig 
sudo vim /usr/bin/xcrun 

Wprowadź następujące wartości w swojej manekina pliku xcrun:

#!/bin/sh 
[email protected] 

Następnie uczynić go wykonywalnym:

sudo chmod 755 /usr/bin/xcrun 
+0

to działało dla mnie! – DevDude

+0

xcode-select: error: nieprawidłowy katalog deweloperów "/ usr/bin"? –