ruby macos nokogiri libxml2 osx-mavericks

ruby - Error al instalar Nokogiri en OSX 10.9 Maverick?



macos libxml2 (30)

Agregué mis hallazgos aquí después de encontrar este mismo problema poco después de una Actualización: here

Espero eso ayude.

Actualicé mi OSX (Lion) a Mavericks y no puedo instalar Nokogiri para mis proyectos.

Ya instalé XCode 5.0.1, las herramientas de línea de comandos (usando xcode-select --install ), y ya instalé libxml2 de Homebrew y sigo teniendo problemas.

El error es:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb checking for libxml/parser.h... *** 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 --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=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --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-libxslt-config --without-libxslt-config --with-pkg-config --without-pkg-config --with-libxml-2.0-config --without-libxml-2.0-config --with-libiconv-config --without-libiconv-config /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do'': The complier failed to generate an executable file. (RuntimeError) You have to install development tools first. from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'' from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'' from extconf.rb:116:in `<main>'' Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection. Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out An error occured while installing nokogiri (1.5.9), and Bundler cannot continue. Make sure that `gem install nokogiri -v ''1.5.9''` succeeds before bundling.

Instalé libxml2, libxslt y libiconv desde Homebrew, y configuré los parámetros para instalar Nokogiri, pero no funciono demasiado.

No puedo encontrar lo que está mal en mi entorno, ¿me pueden ayudar?


Aquí hay otra referencia:

system: OS X Yosemite 10.10 rvm: 1.26.10 brew: 0.9.5 ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

Recibí un error al instalar nokogiri

error como este:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do'': The complier failed to generate an executable file. (RuntimeError)

Primero debe instalar herramientas de desarrollo.

entonces probablemente necesite:

$ xcode-select --install

o si tienes un error como

checking for libxml/parser.h... no

Solo arreglo la ruta de la libra por:

gem uninstall nokogiri libxml-ruby brew update brew uninstall libxml2 brew install libxml2 libxslt gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

para el paquete necesita algo como:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/ bundle install


Después de actualizar a Maverick, tuve un problema similar. Uso RVM con Ruby 1.9.2-p320, y probé varias soluciones aquí, pero nada resolvió el problema.

Luego cambié a Ruby 2.1.2 y bundle install Nokogiri instalado inmediatamente.


Después de navegar here GIF animados, todo lo que tuve que hacer fue simplemente xcode-select --install y el xcode-select --install gem install nokogiri funcionó bien.


El mensaje de error da una pista aquí: The compiler failed to generate an executable file. (RuntimeError) The compiler failed to generate an executable file. (RuntimeError)

xcode-select --install # not sure if this is required brew install apple-gcc42 gem install nokogiri

También es posible que necesite preparar la instalación y vincular estos:

libxml2 libxslt


En mi caso, tuve que ejecutar realmente /usr/bin/gcc-4.2 después de enlazarlo simbólicamente. Tienes que aceptar el acuerdo de licencia, de lo contrario, se bloquea.


Encontré este registro y vi que no se encontró gcc-4.2:

package configuration for libxslt cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2 package configuration for libxml-2.0 cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib libs: -lxml2 package configuration for libiconv is not found "/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -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 -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH=''"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"'' -DNOKOGIRI_LIBXSLT_PATH=''"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"'' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 conftest.c -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L. -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2 -lxml2 -lruby.1.9.1-static -lpthread -ldl -lobjc " sh: /usr/bin/gcc-4.2: No such file or directory checked program was: /* begin */ 1: #include "ruby.h" 2: 3: int main() {return 0;} /* end */

Para resolver este problema, instalé apple-gcc42 usando homebrew brew install apple-gcc42 y creé un enlace simbólico a mi / usr / bin:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2


Estaba enfrentando el mismo problema en las últimas dos semanas al intentar ejecutar una aplicación de versión de Rails 3.

El problema es que su rvm / rbenv no está utilizando el compilador de C.

Use este comando para que rvm tome un compilador de C compatible

CC=gcc rvm install-version

Entonces, si estás usando Ruby 1.9.3, úsalo de esta manera

CC=gcc rvm install-1.9.3

Use este comando cada vez que no pueda agrupar la instalación o cualquier cosa. Esto está funcionando en El Capitan, carriles 3.2.16, ruby ​​1.9.3, mysql 5.7 Afortunadamente, resolverá el problema.

Estaba enfrentando el mismo problema en las últimas dos semanas al intentar ejecutar una aplicación de versión de Rails 3.

El problema es que su rvm / rbenv no está utilizando el compilador de C.

Use este comando para que rvm tome un compilador de C compatible

CC=gcc rvm install-version

Entonces, si estás usando Ruby 1.9.3, úsalo de esta manera

CC=gcc rvm install-1.9.3

Use este comando cada vez que no pueda agrupar la instalación o cualquier cosa.

Esto está funcionando en El Capitan, carriles 3.2.16, ruby ​​1.9.3, mysql 5.7 Afortunadamente, resolverá el problema. Y también si ya tiene el Xcode y luego tampoco está obteniendo los mismos errores al instalar cualquier gema, intente con esta solución.


Esto es lo mismo que la publicación de @ thomas_witt, pero funciona en Mac OS X Sierra:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries


Esto es lo que funcionó para mí en OSX Mavericks:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v ''1.6.1'' --verbose --no-ri --no-rdoc


Esto funciona para mí

system: OS X Yosemite 10.10 rvm: 1.26.10 ruby: ruby 2.2.1

Solo ejecuta debajo de dos comandos

$ xcode-select --install

Le pedirá que descargue decir "sí" y luego le pedirá que instale el componente xcode haga clic en instalar.

Ahora intenta instalar gema con el comando debajo

gem install nokogiri --no-ri --no-rdoc

Esto funciona para mí con el entorno anterior.


Estoy en OSX Mavericks y mi problema resultó ser una mala instalación de Ruby.

Entonces, reinstalé ruby ​​con rvm:

rvm remove ruby 2.0.0p451 rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

Pude entonces

gem install nokogiri --no-ri --no-rdoc

Problema resuelto.


Me encontré con el mismo problema para Mavrick, y la solución fue:

xcode-select --install

Sin embargo, eso no funciona, ya que Apple no tiene ese instalador disponible públicamente ahora.

Entonces, si quiere tener las herramientas de línea de comandos para Mavricks, necesita tener una cuenta paga . Entonces solo tú podrás instalarlo. Una vez que lo instales, no enfrentarás este problema con Nokogiri.


Me encontré con este problema inmediatamente después de instalar la actualización de Mavericks 10.9.5 y la actualización de las herramientas de desarrollador 10.9 de Apple. xcode-select --install , pero eso no solucionó el problema. Luego abrí XCode, acepté la eula y salí de XCode. Eso solucionó el problema.


Me gusta seguir con las cosas proporcionadas por el sistema por lo general. Esto funcionó para mí:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/


Ninguna de estas respuestas funcionó para mi caso particular, y como soy nuevo, pensé que mi solución podría ayudar a otra persona.

Estoy usando Yosemite y estaba usando Ruby 1.9.3p547. Hubo una exposición de seguridad para p547, así que estaba tratando de actualizar a Ruby 1.9.3p550 o superior. Usé RVM, luego traté de migrar mis gemas y muchas de ellas no funcionaron. Luego intenté agrupar la instalación, pero eso estaba fallando y pensé que tal vez era un conflicto entre las diversas rutas y dependencias, así que eliminé la versión anterior de Ruby. Esto rompió todo.

Seguí recibiendo un mensaje que decía que faltaba el compilador de C, a pesar de que había descargado XCode y había actualizado recientemente las herramientas CLI. Encontré otro sitio web que me decía que descargara un GCC de terceros, lo cual hice. que empeoró todo.

Ahora recibo un mensaje que dice que necesito arreglar mis perfiles y PATH o que podría ser más fácil reinstalar OSX. Así que lo hice.

De todos modos, una historia más larga meramente larga: la solución que finalmente funcionó para mí fue deshacerse de RVM y usar brew para descargar la versión de Ruby que quería antes de ejecutar la bundle install . Instale la versión correcta de Nokogiri FIRST.

brew install ruby193 sudo gem install nokogiri -v ''1.6.0'' bundle install


Para hacer que la instalación funcione, tuve que modificar los filepaths en el comando gem install para que coincidan con los de mi sistema. Tengo diferentes versiones de libxml2 y libiconv y una estructura de archivo ligeramente diferente. El comando, con mis modificaciones, es:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib


Para las personas que usan MacPorts , asegúrese de haber instalado libxml2 través de MacPorts . Luego escribe:

bundle config build.nokogiri --use-system-libraries bundle install

Esto debería ser el truco, funcionó para mí sin usar rutas completas.


Para mí, el error fue que ese gcc (4.2.1, instalado desde Homebrew) se quejaba de que:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

Solucioné el problema forzando x86_64 solamente:

ARCHFLAGS="-arch x86_64" gem install nokogiri


Si alguien tiene este problema en el capitan, mientras usa bundler.

Asegúrese de que las herramientas de la línea de comandos de xcode estén instaladas y ejecute esto:

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries


Si está ejecutando Xcode 5.1, las herramientas de línea de comandos no funcionan para nokogiri 1.6.1. Deberá descargar las herramientas de Apple finales de octubre de 2013. Una vez que lo haces correr

sudo xcode-select -s /Library/Developer/CommandLineTools/

configurar su máquina para utilizar las herramientas de línea de comandos de Xcode 5.0.X, luego ejecutar

gem install nokogiri

Si desea restablecer sus herramientas de línea de comandos a la versión de Xcode.app, luego ejecute

sudo xcode-select -r

O bien, otra cosa que puede hacer es agregar la bandera para ignorar los argumentos desconocidos de la línea de comando. Entonces la instalación se ve así:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri


También puede instalar Nokogiri en Mac OS X 10.9 Mavericks con la instalación completa de XCode usando:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Actualizar

Para aquellos que usan Yosemite, el siguiente comando funcionará:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --use-system-libraries

o, de hecho, podría estar en su carpeta MacOSX10.11.sdk (la mía era desde el 18 de septiembre de 2015) de todos modos, así que incluso si aún no está completamente satisfecho con El Capitán, recientemente he actualizado XCode y es posible que necesite utilice la ruta de acceso SDK de El Capitan, que sigue a continuación:

Actualizar

Para quienes usan El Capitán, el siguiente comando funcionará:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

Actualizar

Para aquellos que usan Sierra, el siguiente comando funcionará:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries


Todos y cada uno de los malditos que están aquí no lo hicieron por mí (no llegué a las reinstalaciones brew, oy), pero finalmente lo hizo (encontrado a través de un informe de error sobre algún proyecto no relacionado):

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

Buena suerte. ¡Yay para #yakshaving!


Tuve el mismo error en una nueva instalación de Mavericks. Después de haber Xcode 5.0.1.app nombre de mi paquete de aplicaciones de Xcode 5.0.1.app a Xcode 5.0.1.app .

Aparentemente, el script de instalación de Nokogiri no cita sus rutas, por lo que el espacio en el nombre del archivo causaba todo tipo de problemas. No fue hasta que probé brew install libxml2 que el error se hizo obvio.

Lección aprendida: los espacios en los nombres de archivo son malvados.


Tuve este problema hoy, en Maverick, así es como terminé resolviendo el problema:

brew update brew install libiconv brew link libiconv

Asegúrese de saber que la versión de libiconv en Cellar mine a continuación era 1.14, luego instálela de la siguiente manera:

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Si necesita una versión particular de nokogiri eg -v ''1.6.2.1'' entonces instálela como:

gem install nokogiri -v ''1.6.2.1'' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

¡Nokogiri fue instalado exitosamente!


Tuve este problema también. La ejecución de brew doctor mostró que tenía una versión inesperada de libiconv en / user / local / lib.

Warning: Unbrewed dylibs were found in /usr/local/lib. If you didn''t put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted. Unexpected dylibs: /usr/local/lib/libcharset.1.dylib /usr/local/lib/libiconv.2.dylib

Así que los eliminé, y rebrewed libxml:

rm /usr/local/lib/libiconv* andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt ... ==> Summary 🍺 /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

Finalmente, instalé nokogiri:

Jeff$ gem install nokogiri Building native extensions. This could take a while... Successfully installed nokogiri-1.6.0 1 gem installed


Utilice brew install libxml2 libxslt si usa Homebrew.


Verifique su versión de herramientas de línea de comando. Configure su máquina para utilizar las herramientas de línea de comandos de Xcode 5.0.X, luego ejecute:

gem install nokogiri


para Windows también puedes probar la instalación local:

  1. Descargue la gema adecuada según su entorno.

  2. vaya al directorio donde guardó el archivo gem.

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

si no funciona, puede verificar si tiene instalado zlib y mingw o el compilador c adecuado.


brew install libxml2 libxslt gem install nokogiri -- / --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 / --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib / --with-xslt-dir=/usr/local/Cellar/libxslt/*