2011-12-06 10 views
5

Tengo un problema que me ha bloqueado durante un día y medio, y me gustaría obtener ayuda.actualizar a osx lion, bundler obtiene errores de extensión nativos - no existe ningún archivo o directorio

He estado moviendo mi última aplicación de rails 3 entre mi iMac y mi macbook pro, con una copia simple, y hasta ahora, no he tenido ningún problema.

fyi, utilizo rvm para administrar las versiones de mis proyectos.

Obtuve un nuevo iMac, con el león instalado, y todo parecía estar bien hasta que ejecuté la actualización del paquete. Desde entonces no he podido hacer que el bundler funcione. Los problemas surgen cuando se construye una extensión nativa de gema.

Una vez que ejecuto la actualización del paquete, nada funciona en mi máquina iMac (osx lion). Puedo continuar ejecutando la actualización del paquete en mi computadora portátil (Snow Leopard).

Así que me gustaría poder seguir desarrollando en mi máquina Lion. Esto es lo que he hecho hasta ahora:

Inicialmente, recibí algunos errores sobre mis compiladores, pero como reinstalé xcode y ejecuté el instalador, ya no tengo esos errores.

Todavía recibí errores en mi compilación de nokogiri. En un momento he seguido algunas instrucciones del blog (y lo hice:

sudo port upgrade --enforce-variants libxml2 +universal 

pero parecía hacer ninguna diferencia para la construcción de nokogiri

Ahora cuando lo haga la actualización de paquete, me estoy haciendo:.

Installing nokogiri (1.5.0) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 

     /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for libxml/parser.h... yes 
checking for libxslt/xslt.h... yes 
checking for libexslt/exslt.h... yes 
checking for iconv_open() in iconv.h... no 
checking for iconv_open() in -liconv... yes 
checking for xmlParseDoc() in -lxml2... yes 
checking for xsltParseStylesheetDoc() in -lxslt... yes 
checking for exsltFuncRegister() in -lexslt... yes 
checking for xmlHasFeature()... yes 
checking for xmlFirstElementChild()... yes 
checking for xmlRelaxNGSetParserStructuredErrors()... yes 
checking for xmlRelaxNGSetParserStructuredErrors()... yes 
checking for xmlRelaxNGSetValidStructuredErrors()... yes 
checking for xmlSchemaSetValidStructuredErrors()... yes 
checking for xmlSchemaSetParserStructuredErrors()... yes 
creating Makefile 

make 
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_XMLHASFEATURE -DHAVE_XMLFIRSTELEMENTCHILD -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETPARSERSTRUCTUREDERRORS -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/libxml2 -I/opt/local/include -I/usr/local/include -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -o html_document.o -c html_document.c 
make: gcc-4.2: No such file or directory 
make: *** [html_document.o] Error 1 


Gem files will remain installed in /Users/tayloredwebsites/.rvm/gems/[email protected]/gems/nokogiri-1.5.0 for inspection. 

Después de hacer esto waaaay demasiadas veces, decidí eliminar capibara y lanuchy de mi Gemfile, por lo que iba a conseguir más allá de este error. lo y he aquí, actualizar paquete me da otro fracaso Bui ld una extensión nativa:

Installing sqlite3 (1.3.5) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 

     /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... yes 
checking for rb_proc_arity()... yes 
checking for sqlite3_initialize()... yes 
checking for sqlite3_backup_init()... yes 
checking for sqlite3_column_database_name()... no 
checking for sqlite3_enable_load_extension()... no 
checking for sqlite3_load_extension()... no 
creating Makefile 

make 
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_RB_PROC_ARITY -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_BACKUP_INIT -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -o backup.o -c backup.c 
make: gcc-4.2: No such file or directory 
make: *** [backup.o] Error 1 

Así que parece que estoy recibiendo un error de este tipo hay un archivo en mi construye, por el mismo conjunto de código, con la diferencia fundamental de que una máquina está en león, y el otro está en Snow Leopard.

Así que tal vez alguien me puede ayudar con estas preguntas:

En mis investigaciones, he notado que en la construcción nokogiri, se le pide para libxml2 en 3 lugares (dos de los cuales no existen !!! !). ¿Alguien sabe cómo controlar cómo controlar estos argumentos, para poder eliminar los que no existen?

Cuando miré en la construcción de sqlite3, no noté ningún archivo perdido, sin embargo, parece que todavía los estoy obteniendo. ¿Podría esto ser colgado del problema de nokogiri? Si es así, ¿alguien sabe cómo aclaro esto?

Me gustaría saber qué archivo falta, y parece que no puedo encontrarlo en el mensaje de error. ¿Hay alguna forma de obtener detalles del depurador de la actualización del paquete?

También noté que en la marca, el directorio de inclusión contiene un directorio nombrado con una versión anterior de ruby. Esto ha sido así por bastante tiempo, sin ningún problema, así que sospecho que este no será el problema aquí, pero solo quería señalarlo.

Respuesta

1

He reinstalado todo en mi OSX Lion. Me actualicé a Server para superar algunos problemas de postgres. Tenga en cuenta que cuando instalé rvm, uno de los pasos es ejecutar;

$ rvm requirements

que devuelve, entre otras cosas:

Xcode 4.2: * is only supported by ruby 1.9.3+ using command line flag: --with-gcc=clang * it breaks gems with native extensions, especially DB drivers.

Xcode 4.2.1+ users - please be warned - in case of any compilation issues * downgrade to Xcode 4.1 * uninstall Xcode and install osx-gcc-installer and reinstall your rubies.

Nota: si desinstala Xcode, se pierde la configuración estándar MacPort Xcode.

Tenga en cuenta que puede construir MacPorts desde la fuente usando gcc - no probado (al menos aún).

6

Literalmente no hay tal archivo o directorio gcc-4.2 en Lion. Me quedé atascado en esto cuando trato de "instalar rvm ruby-1.9.3" que no fue similar a lo que informaste. Una solución fue especificar el comando CC como este "CC = gcc rvm install ruby-1.9.3". Si la opción CC = gcc no se puede pasar a bundler, podría ser más simple "sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2" y simplemente crear el enlace simbólico que está buscando.

+1

mejor sería instalar gcc-4.2 usando este paquete https://github.com/kennethreitz/osx-gcc-installer – mobileAgent

+0

que no hice el paquete anterior, porque parece que sustituye Xcode! –

+0

Ahora que tengo gcc apuntando a llvm-gcc-4.2, obtengo configure: error: el preprocesador C "/usr/bin/cpp-4.2" falla la comprobación de cordura (anteriormente, he estado configurando cc, gcc C++, etc. señalar a las versiones de llvm). –

0

Construí mi ruby-1.9.3 con clang así que cuando instalé la gema nokogiri utilicé CC = clang gem install nokogiri -v '1.5.5' que funcionó para mí.

Cuestiones relacionadas