8

Después de actualizar a Snow Leopard, he encontrado que la instalación de algunas joyas ya no funcionaba, incluyendo webrat, mecanización, etc. Cada vez que sale este error:Errores al instalar algunas joyas en Snow Leopard - libxml2

checking for xmlParseDoc() in -lxml2... no 
libxml2 is missing. try 'port install libxml2' or 'yum install libxml2' 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Y sin , No intenté instalarlo con macports, porque perdí macports hace un par de años cuando descubrí que no podía degradar/administrar puertos fácilmente. Desde entonces, me he sentido muy cómodo construyendo de la fuente a mano, y esta es la primera vez que me encuentro con algo más allá de mi conocimiento. Estoy dispuesto a persuadirme de que vuelva a macports, pero solo si no me resulta fácil encontrar una solución a esto.

No parece que libxml2 falta realmente, justo fuera de fecha, tal vez? ...

de salida extendida

ERROR: Failed to build gem native extension. 

/usr/local/bin/ruby extconf.rb 
checking for iconv.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for libxml/parser.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for libxslt/xslt.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for libexslt/exslt.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2... yes 
checking for xmlParseDoc() in -lxml2... no 
libxml2 is missing. try 'port install libxml2' or 'yum install libxml2' 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/local/bin/ruby 
    --with-iconv-dir 
    --without-iconv-dir 
    --with-iconv-include 
    --without-iconv-include=${iconv-dir}/include 
    --with-iconv-lib 
    --without-iconv-lib=${iconv-dir}/lib 
    --with-xml2-dir 
    --without-xml2-dir 
    --with-xml2-include 
    --without-xml2-include=${xml2-dir}/include 
    --with-xml2-lib 
    --without-xml2-lib=${xml2-dir}/lib 
    --with-xslt-dir 
    --without-xslt-dir 
    --with-xslt-include 
    --without-xslt-include=${xslt-dir}/include 
    --with-xslt-lib 
    --without-xslt-lib=${xslt-dir}/lib 
    --with-xml2lib 
    --without-xml2lib 


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.1 for inspection. 
Results logged to /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.1/ext/nokogiri/gem_make.out 

Respuesta

1

ACTUALIZACIÓN

Como se ha dicho en otra respuesta, la solución de abajo es 'exageración', ya que elimina DarwinPorts de su sistema, por lo que pensé que ya había hecho antes. Proceda con cuidado. Puede haber una forma de usar MacPorts para actualizar la instalación de libxml2.


Resolví este problema (en mi máquina al menos).

Una vez que me di cuenta de que nada en esa traza sugería la falta de libxml2, sino un problema con la versión que se detectaba, busqué la confirmación de este hecho. Efectivamente, el nokogiri website (donde muchos informes de errores similares me indicaron) establece en términos inequívocos que Snow Leopard se envía con una buena versión de trabajo de libxml2.

Por lo tanto, razoné que debo haber instalado una versión por otro medio hace mucho tiempo. Recordaría si lo hubiera instalado a mano, por lo que en realidad solo quedaba una opción, frickin 'macports.

$ libxml2-2.7.1 tfwright$ sudo find/-type d -name "libxml2" 
find: /dev/fd/3: Not a directory 
find: /dev/fd/4: Not a directory 
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/libxml2 
/Developer/SDKs/MacOSX10.5.sdk/usr/include/libxml2 
/Developer/SDKs/MacOSX10.6.sdk/usr/include/libxml2 
/opt/local/include/libxml2 
/opt/local/share/gtk-doc/html/libxml2 
/opt/local/var/macports/distfiles/libxml2 
/opt/local/var/macports/receipts/libxml2 
/opt/local/var/macports/software/libxml2 
/opt/local/var/macports/software/libxml2/2.6.30_0/opt/local/include/libxml2 
/opt/local/var/macports/software/libxml2/2.6.30_0/opt/local/share/gtk-doc/html/libxml2 
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libxml2 
/usr/include/libxml2 
/usr/share/gtk-doc/html/libxml2 

Hijo de ... acaba de soplar lejos /opt/local/var/macports, que trataba en primer lugar, no parece solucionar el problema, por lo que se dirigió a la big guns.

sudo rm -rf \ 
/opt/local \ 
/Applications/DarwinPorts \ 
/Applications/MacPorts \ 
/Library/LaunchDaemons/org.macports.* \ 
/Library/Receipts/DarwinPorts*.pkg \ 
/Library/Receipts/MacPorts*.pkg \ 
/Library/StartupItems/DarwinPortsStartup \ 
/Library/Tcl/darwinports1.0 \ 
/Library/Tcl/macports1.0 \ 
~/.macports 

Después de lo cual, todo se instala bien. está bien. ¡Nunca confíes en las recomendaciones de los mensajes de error! Lejos de necesitar reinstalar libxml2 con macports, necesitaba borrar todos los rastros de macports de mi sistema, que me perseguía más allá de la basura.

+0

gracias @floyd también funciona para mí –

0

Las gemas que está intentando instalar requerir libxml2. Si se siente cómodo instalando desde el origen, instale libxml2.

Puede encontrarse con problemas de dependencia donde libxml2 depende de muchos otros paquetes que deberá compilar e instalar manualmente. Esa es una razón por la cual macports termina siendo útil.

+0

me dijeron allá de mis conocimientos porque hay doesn Parece ser una guía autorizada para instalar libxml2 desde la fuente. Y en mi experiencia, hay demasiados obstáculos ocultos para aventurarse allí sin una guía. Los problemas de dependencia que mencionas son exactamente de lo que estoy hablando. ¿Estás diciendo que hay tantas dependencias en este caso, que no es razonable elaborar una receta simple, como las que existen para SQL, ruby, etc. (las guías de hivelogic)? – tfwright

1

La solución de floyd es exagerada. Tuve el mismo problema y comencé a destruir algunos de los mismos archivos/opt/locales relacionados con xml2, pero su comando 'find' no revela los archivos libxml2 reales en opt/local/lib. Puede ser que solo necesites destruirlos.

Éstos son mis archivos nuked:

/opt/local/include/libxml2 
/opt/local/var/db/dports/distfiles/libxml2 
/opt/local/var/db/dports/receipts/libxml2 
/opt/local/var/db/dports/software/libxml2 
/opt/local/var/db/dports/rsync.rsync.darwinports.org_dpupdate_dports/textproc/libxml2 
/opt/local/share/gtk-doc/html/libxml2 
/opt/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/textproc/libxml2 

pero antes de que intenta - sólo Destroce las lib archivos sudo rm /opt/local/lib/libxml2.*

Cuando he intentado instalar después de que se metió en la compilación de todo, pero luego barfed con un problema con libz ...

Así Nuke que en/opt/local/lib sudo rm-rf /opt/local/lib/libz.*

Y compila muy bien!

Así que trate de atacar con armas nucleares del opt/libxml2/local/lib. * Y libz. * Archivos, ver si se compila y si no, arma nuclear el directorio/opt/local/incluye