Jak skompilować mod_wsgi, mod_fastcgi itp. Na Mountain Lion (Mavericks), ustawiając `apxs: Error: Komenda nie powiodła się z rc = 65536`?


22

Zaktualizowałem system do OS X Mountain Lion. Aktualizacja usunęła wszystkie moje moduły Pythona i Apache, w tym mod_wsgi.

Teraz próbuję ponownie skompilować mod_wsgi (skompilowałem bez problemów na Lionie).

Korzystam z kodu źródłowego tutaj: http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2

./configure tworzy Makefile bez problemów:

$ ./configure
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking Apache version... 2.2.22
checking for python... /usr/bin/python
configure: creating ./config.status
config.status: creating Makefile

Ale błąd make return:

$ make
/usr/sbin/apxs -c -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -Wc,'-arch x86_64' mod_wsgi.c -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/  -arch x86_64 -ldl  -framework CoreFoundation  
/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch x86_64 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo
env: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory
apxs:Error: Command failed with rc=65536
.
make: *** [mod_wsgi.la] Error 1

Odpowiedzi:


32

Rozwiązałem ten problem pisząc pytanie:

Z jakiegoś powodu /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/folder (zawierający narzędzia wiersza poleceń Xcode) znajduje się tutaj:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

Naprawić problem:

$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain

Sugestia Grega Baira dla Mavericksa:

$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain

To tworzy dowiązanie symboliczne do odpowiedniego folderu.


4
Należy podkreślić, że jest to problem z konfiguracją kompilacji apxs dostarczoną przez Apple, o ile wiem i nie ma nic wspólnego z mod_wsgi. Pojawił się przed wydaniem Mountain Lion i ktoś jakoś przekazał Apple informacje zwrotne, ale Apple go nie naprawił. Jest prawdopodobne, że ten problem wpłynie na każdą próbę zbudowania modułów Apache przy użyciu apx, a nie tylko mod_wsgi.
Graham Dumpleton

Problem, który zgłosiłem, wydaje się związany z użytkowaniem. Z jakiegoś powodu uważa, że ​​kompilator (gcc) znajduje się w innym folderze. Można to po prostu naprawić, tworząc dowiązanie symboliczne (szczegóły w mojej odpowiedzi). sudo make install po tym również działa.
Daniil Ryżkow

Zakładając, że ta sama lokalizacja pliku, co starszy MacOS X, problem będzie dotyczył definicji w /usr/share/httpd/build/config_vars.mk, których używa apxs.
Graham Dumpleton

Jak sugeruje @GrahamDumpleton, to rozwiązanie rozwiązuje również problemy z mod_fastcgi v2.4.6.
Graham Miln

3
Zauważ, że działa to również w przypadku Mavericks, ale byłoby $ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
Greg Bair,

2

Wpadłem na ten sam problem, jednak utworzenie dowiązania symbolicznego nie rozwiązało go dla mnie. To, co zadziałało, to dodanie flagi --disable-frameworkdo ./configurepolecenia. Zobacz sens więcej szczegółów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.