¿Cómo compilar mod_wsgi, mod_fastcgi, etc. en Mountain Lion (Mavericks) arreglando `apxs: Error: El comando falló con rc = 65536`?


22

He actualizado a OS X Mountain Lion. La actualización ha eliminado todos mis módulos de Python y Apache, incluido mod_wsgi.

Ahora estoy tratando de recompilar mod_wsgi (se compiló sin problemas en Lion).

Uso el código fuente desde aquí: http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2

./configure crea Makefile sin problemas:

$ ./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

Pero hacer devuelve error:

$ 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

Respuestas:


32

Resolví este problema mientras escribía la pregunta:

Por alguna razón, la /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/carpeta (que contiene Xcode Command Line Tools) está aquí:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

Para solucionar el problema:

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

Sugerencia de Greg Bair para Mavericks:

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

Esto crea un enlace simbólico a la carpeta correcta.


44
Debe resaltarse que este es un problema con la configuración de compilación de apxs que Apple suministró hasta donde yo sé y nada que ver con mod_wsgi. Surgió antes de que Mountain Lion fuera lanzado y alguien proporcionó comentarios a Apple de alguna manera, pero Apple no lo solucionó. Es probable que este problema afecte cualquier intento de construir módulos Apache usando apxs y no solo mod_wsgi.
Graham Dumpleton

El problema que envié parece estar relacionado con la utilidad. Por alguna razón, cree que el compilador (gcc) está situado en otra carpeta. Simplemente se puede solucionar creando un enlace simbólico (vea mi respuesta para más detalles). sudo make install después de eso también funciona.
Daniil Ryzhkov

Presumiendo la misma ubicación de archivo que MacOS X anterior, el problema estará en las definiciones en /usr/share/httpd/build/config_vars.mk que apxs usa.
Graham Dumpleton

Como sugiere @GrahamDumpleton, esta solución también corrige problemas con mod_fastcgi v2.4.6.
Graham Miln

3
Tenga en cuenta que esto también funciona para Mavericks, pero lo sería $ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
Greg Bair

2

Me encontré con el mismo problema, sin embargo, crear el enlace simbólico no me lo resolvió. Lo que sí funcionó fue agregar la bandera --disable-frameworkal ./configurecomando. Vea la esencia para más detalles.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.