ruby - rails - Instalación de Nokogiri en OSX 10.10 Yosemite
ruby 2.4 mac (23)
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 here 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 `<main>''
¿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.
(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
Creo que el problema está relacionado con el sistema que no se encuentra Ruby o que se instalan varios Rubies.
- ¿Usas RVM para administrar rubíes?
- ¿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.
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
Esto finalmente funcionó para mí:
sudo gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/
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]
Esto funcionó para mí:
ARCHFLAGS="-arch x86_64" gem install nokogiri -v ''1.6.0''
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
Instala el Xcode completo. Era lo único que funcionaba para mí en las viejas versiones de Nokogiri.
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
Lo único que funcionó para mí fue actualizar el compilador 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
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 intentos a tus versiones actuales de Ruby.
gem install nokogiri -v ''1.6.1'' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/
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
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.
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/
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:
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
Sólo inténtalo:
xcode-select --install
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
Tal vez mi publicación en github pueda ayudarte. Mi entorno me estaba dando dolores de cabeza
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
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
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
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