Instalación de Nokogiri en OSX 10.10 Yosemite

Recientemente actualicé a la versión 10.10 de Yosemite beta, pero estoy teniendo problemas para instalar Nokogiri. Estoy usando RVM y Ruby 1.9.3. También seguí los pasos aquí e intenté seguir las instrucciones en la página principal de Nokogiri.

He instalado libxml2 (2.9.1) y libxslt (1.1.28) a través de homebrew, y he intentado utilizar las herramientas de línea de comandos de mi instalación Xcode 5 y Xcode 6 beta.

gem install nokogiri -v '1.5.5' Building native extensions. This could take a while... ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/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/grantdavis/.rvm/rubies/ruby-1.9.3-p362/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/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:970:in `block in find_header' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:280:in `postpone' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for' from /Users/grantdavis/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb:969:in `find_header' from extconf.rb:114:in `' 

¿Alguien tiene una idea sobre cómo solucionar estos errores de instalación?

EDITAR 10/10/14: Después de intentar durante un par de días obtener Nokogiri instalado en OSX 10.10, terminé abandonando la tarea y restauré 10.9 en mi máquina. Es necesario actualizar varias bibliotecas y paquetes para trabajar en el entorno 10.10.

Logré instalar Nokogiri bajo Yosemite (Vista previa de OS X 10.10).

Paso 1: Instalar Brew

Omita esto si se instaló cerveza.

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

Paso 2: instala brew libs

 brew tap homebrew/dupes brew install libxml2 libxslt brew install libiconv 

Paso 3: Descargue e instale Apple Commandline Tools para 10.10

Es importante que deba reiniciar después de la instalación.

Enlace: command_line_tools_for_osx_10_10_june_2014.dmg

Después de reiniciar, puede verificar la instalación en la Terminal:

 > xcode-select --install -> xcode-select: error: command line tools are already installed, use "Software Update" to install updates 

Este error significa que tiene la herramienta de línea de comandos instalada correctamente.

Instalando Nokogiri

Intente utilizar la versión anterior 1.6.1 en su Gemfile; la versión 1.6.2.1 tiene problemas actualmente con “10.10 Preview”. Solo funciona con mi rbenv Ruby 2.0.0p247, no se pudo instalar en 2.1.1. Puedes darle un par de bashs a tus versiones actuales de Ruby.

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

libxml2 – 1.6.6.2 en Yosemite:

 sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include 

Para Mac OS El Capitan:

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

Esto funcionó para mí:

 ARCHFLAGS="-arch x86_64" gem install nokogiri -v '1.6.0' 

Tuve el mismo problema con MacPorts ruby2.1:

 can not gem install nokogiri on osx10.10 with macports ruby2.1 

La instalación comienza, la CPU va al 50% en un solo núcleo al 100%, luego la CPU cae a casi cero, pero el iostat tps atraviesa la pared.

Esto ayudó:

 # port install libiconv libxslt libxml2 # gem install nokogiri -- --use-system-libraries --with-iconv-dir=/opt/local --with-xml2-dir=/opt/local --with-xslt-dir=/opt/local 

Esto finalmente funcionó para mí:

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

Para cualquier otra persona que no haya podido hacer que esto funcione en El Capitán, lo que finalmente funcionó para mí fue:

 sudo gem install nokogiri -- --use-system-libraries --with-xslt-dir=/usr/local/opt/libxslt --with-iconv-dir=/usr/local/opt/libiconv --with-xml2-dir=/usr/local/opt/libxml2 --with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xml2-include=/usr/local/opt/libxml2/include/libxml2 --with-xslt-config=/usr/local/opt/libxslt/bin/xslt-config 

No tengo macports instalados, y mi sistema es un raro hodge-podge. Forzar instalaciones específicas para cada dependencia es la única forma en que puedo hacer que Nokogiri compile. Súper molesto, pero al menos funciona.

Las instrucciones del sitio web de Nokogiri me funcionaron tanto en OSX 10.9 como en 10.10.

 brew unlink gcc-4.2 # you might not need this step gem uninstall nokogiri xcode-select --install gem install nokogiri 
 sudo gem update --system sudo gem install nokogiri -v '1.6.6.2' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib 

(respuesta completa aquí https://gist.github.com/chrisb/4d6a09c6cc1ca2e1b14e )

Parece que Homebrew de alguna manera depende de que Ruby esté en Versions / 1.8 (aunque incluso Mavericks incluye 2.0). Hasta que Homebrew resuelva esto, enlazaremos simbólicamente la versión de nuestro sistema de Ruby con la que busca Homebrew.

Crea la carpeta:

 sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin 

Luego, haz un enlace simbólico al binario:

 sudo ln -s /usr/bin/ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 

Esto funcionó para mí:

 $ brew install libxml2 libxslt # optional? $ brew install libiconv # optional? $ gem install nokogiri -v 1.6.8 -- --use-system-libraries --with-xml2-include=/usr/local/opt/libxml2 

en un entorno como este:

 $ sw_vers -productVersion 10.9.4 $ brew -v Homebrew 0.9.9 (git revision aa747; last commit 2016-05-26) $ gem env RubyGems Environment: - RUBYGEMS VERSION: 2.0.14 - RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13] 

Lo único que funcionó para mí fue actualizar el comstackdor de apple-gcc42 a gcc48:

 brew uninstall apple-gcc42 brew install gcc48 # this might take an hour or so rvm implode \curl -sSL https://get.rvm.io | bash -s stable # reinstall RVM rvm install ruby-1.9.3-p551 bundle update libv8 # 3.16.14.3 doesn't work but 3.16.14.7 does bundle 

Si está utilizando OS X 10.10 y MacPorts, también debe instalar pkgconfig:

 sudo port install pkgconfig libxml2 libxslt libiconv 

Además, si desea utilizar las bibliotecas de MacPorts de forma automática sin agregar opciones de configuración, deberá agregar esto a su perfil o .bashrc:

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH export MANPATH=/opt/local/share/man:$MANPATH export LDFLAGS="-L/opt/local/lib" export CPPFLAGS="-I/opt/local/include" 

Y también es posible que desee agregar esto para decirle a Nokogiri que siempre use las bibliotecas de su sistema:

 export NOKOGIRI_USE_SYSTEM_LIBRARIES=Y 

Reinicie la terminal después de agregar todas estas exportaciones.

Usando esta configuración puedes instalar Nokogiri usando:

 gem install nokogiri 

Recibí el mismo mensaje de error en OS X Yosemite versión 10.10.5

Recientemente realicé varias actualizaciones del sistema operativo y resultó que solo tenía que aceptar el nuevo acuerdo de licencia de xcode con el siguiente comando:

 sudo xcodebuild -license 

Tal vez mi publicación en github pueda ayudarte. Mi entorno me estaba dando dolores de cabeza

En mi caso, el mensaje de error se escribió debajo y la solución correspondiente también.

Mensaje de error:

 ... libxml2 is missing. Please locate mkmf.log to investigate how it is failing. ... 

Solución:

 gem install nokogiri -- --use-system-libraries --with-libxml2lib=/usr/local/opt/libxml2/lib/libxml2.a 

Le di directamente el camino de la biblioteca de libxml2.a

Instala el Xcode completo. Era lo único que funcionaba para mí en las viejas versiones de Nokogiri.

Para mí cambiar a Xcode 5 en lugar de utilizar la herramienta CLI de Xcode 6:

 sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/ 

Creo que el problema está relacionado con el sistema que no se encuentra Ruby o que se instalan varios Rubies.

  • ¿Usas RVM para administrar Rubyes?
  • ¿Cuál es la salida de ruby -v ?

Esos deberían ser el punto de partida para encontrar una solución.

El error del bad interpreter incorrecto está relacionado con un problema con la instalación de Ruby.

Idealmente, debe comenzar con el sistema Ruby, el que se envía con Xcode. Entonces, desinstalarías Xcode completamente usando:

http://osxdaily.com/2012/02/20/uninstall-xcode/

Desinstale brew , rvm y rvm instalarlos.

Sólo inténtalo:

 xcode-select --install 

resuelve el problema “No se puede escribir / usr / bin / nokogiri al instalar en Mac OS EI Capitan” en mac os x:

 sudo gem install nokogiri -n /usr/local/bin 

Referencia: https://www.bountysource.com/issues/28085261-can-t-write-usr-bin-nokogiri-while-installing-on-mac-os-ei-capitan

Esto funcionó:

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

Fuente

Probar esto:

Instale estos paquetes en el orden dado:

 brew install libxml2 libxslt brew link libxml2 libxslt gem install nokogiri 

Intenta actualizar la versión de gcc:

    Intereting Posts