¿Error al instalar Nokogiri en OSX 10.9 Maverick?


109

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

Ya instalé XCode 5.0.1, Command Line Tools (usando xcode-select --install), y ya instalé libxml2 de Homebrew y todavía tengo 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 de Homebrew, y configuré los parámetros para instalar Nokogiri, pero tampoco funcionan.

No encuentro lo que está mal en mi entorno, ¿pueden ayudarme?



2
Intente abrir xcode y acepte el EULA / licencia.
moander

Respuestas:


245

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, en realidad, podría estar en su MacOSX10.11.sdkcarpeta (la mía era del 18 de septiembre de 2015) de todos modos, por lo que incluso si aún no está completamente a la altura de El Capitan, recientemente actualicé XCode y es posible que deba usar El Capitan SDK ruta, que sigue a continuación:

Actualizar

Para aquellos que usan El Capitan, 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

4
No para mí: "falta libxml2. Visite nokogiri.org/tutorials/installing_nokogiri.html para obtener ayuda con la instalación de dependencias". Sigo recibiendo el mismo error.
Pop-A-Stash

1
Tuve que agregar --use-system-libraries. Luego funcionó en una nueva instalación de Mavericks con Xcode 5.1.1 y brew.
jmg

11
Tuve que agregar el --use-system-librariespara que esto funcione:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
Maverick

1
Este es el único que funcionaría para mí, en 10.10.3: sudo gem install nokogiri - --with-iconv-lib = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include - with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-libraries
Erik Villegas

10
Es posible que desee actualizar su respuesta con el comando más genérico que debería funcionar en todas las versiones de OS X y rutas de instalación de Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp


20

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-gcc42y 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


esto no resolvió el problema para mí, todavía tengo el mismo mensaje de error :(
David Portabella

1
Desinstalé completamente rvm y ruby ​​(de brew), volví a instalar y funcionó.
David Portabella

3
Entonces, simplemente corro brew install apple-gcc42... y simplemente funciona. ¿Ese comando no funciona para ti?
squiter

4
Corrí xcode-select --installantes de la instalación de la preparación y todo funciona ahora.
Quickredfox

1
@LucyBain Realmente no recuerdo ... pero creo que ese archivo de registro estaba en el mismo directorio que gem_meake.out ...
squiter

15

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 finales de octubre de 2013 de Apple . Una vez que hagas eso, corre

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

para configurar su máquina para usar las herramientas de línea de comando Xcode 5.0.X, luego ejecute

gem install nokogiri

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

sudo xcode-select -r

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

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

12

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

sorprendentemente, esto es lo único en todo este camino que también me ayudó. ¡Gracias!
KonstantinK

El problema con esto es que usar sudocon RVM o rbenv causará problemas ya que el root no sabe dónde viven los Rubies en la zona de pruebas. Esto se trata en la página de instalación de RVM . El OP está usando RVM, y el uso sudoharía que Nokogiri se instale en Ruby de Apple, no en el del usuario. Por lo tanto, no haga esto a menos que esté SEGURO de que desea instalar Ruby de Apple si está en Mac OS, o en el sistema Ruby si está en otro * nix.
The Tin Man,

10

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

Entonces pude

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

Problema resuelto.


Frio. Ahora que está usando rvm en mavericks, intente abrir vim. ¿Error SEGV? Encantador.
Tim

No pude eliminar el conjunto de gemas porque las carpetas no estaban vacías, ¡pero la reinstalación del conjunto de gemas (aunque había errores) sí lo hizo! ¡Esto es lo único que funcionó para mí!
Onikoroshi

9

Normalmente me gusta quedarme con las cosas proporcionadas por el sistema. 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/

después de buscarlo en Google durante horas, esa fue la única solución que funcionó para mí, ¡gracias! : D
Rogerio Chaves

5

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. Corrí xcode-select --install, pero eso no solucionó el problema. Luego abrí XCode, acepté la eula y salí de XCode. Eso solucionó el problema.


3

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 es 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, por ejemplo, -v '1.6.2.1', instálela como:

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

¡Nokogiri se instaló con éxito!


También funcionó para mí en Yosemite. Ninguna de las respuestas anteriores lo hizo.
MattL

3

Esta es la misma 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

2

Para que la instalación funcione, tuve que modificar las rutas de archivo en el gem installcomando para que coincidieran con las de mi sistema. Tengo diferentes versiones de libxml2 y libiconv y una estructura de archivos 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

Tuve que ser muy meticuloso con las rutas de archivo. Me tomó varios intentos construir correctamente los comandos.
darkmoves

Aquí hay un enlace a otra solución al problema de una versión incorrecta de libxml.
darkmoves

2

Para las personas que usan MacPorts , asegúrese de haber instalado a libxml2través de MacPorts. Luego escriba:

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

Esto debería funcionar, funcionó para mí sin usar rutas completas.



2

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 las 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 biblioteca 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

2

Esto funciona para mi

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 y diga "sí" y luego le pedirá que instale el componente xcode, haga clic en instalar.

Ahora intente instalar gema con el siguiente comando

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

Esto funciona para mí con el entorno anterior.


1

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

xcode-select --install

Sin embargo, eso no funciona ya que la página de descarga de Apple para la herramienta de línea de comandos no tiene ese instalador disponible públicamente ahora.

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


No tengo una cuenta paga y me instalaron las herramientas de línea de comandos. Lo instalé usando la terminal, pero un amigo mío lo instaló usando esa página de descarga, y él tampoco tiene una cuenta paga.
squiter

Estoy de acuerdo contigo. Lo mismo sucedió conmigo hasta el 24 de noviembre de 2013. Sin embargo, si va a esa página ahora e intenta acceder a ella, obtendrá este error. Lo extraño es que inicie sesión con sus credenciales, pero lo mantendrá ingresando como invitado. Este es el mensaje que recibo en la página con mi cuenta: Programa para desarrolladores de Apple Gran advertencia No podemos procesar su solicitud. Vuelva a la página anterior o salga de su navegador y vuelva a intentar su solicitud. Si necesita ayuda, comuníquese con el Soporte para desarrolladores de Apple.
shinesecret

1

Tuve este mismo error en una instalación nueva de Mavericks. Después de tener un lapso de juicio, cambié el nombre de mi paquete de aplicaciones Xcode a Xcode 5.0.1.app.

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

Lección aprendida: los espacios en los nombres de los archivos son malos.


1

En mi caso, tuve que ejecutar /usr/bin/gcc-4.2 después de simularlo. Debe aceptar el acuerdo de licencia, de lo contrario, se bloquea.


1

El mensaje de error da una pista aquí: 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 deba preparar la instalación y vincular estos:

libxml2 libxslt

1
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/*

1

Para mí, el error fue que 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

Resolví el problema forzando solo x86_64:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

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

Luego cambié a Ruby 2.1.2 e bundle installinstalé Nokogiri inmediatamente.


1

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

Asegúrese de que las herramientas de 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

1

Me enfrentaba al mismo problema de las últimas dos semanas mientras intentaba ejecutar una aplicación de la versión Rails 3.

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

Use este comando para que rvm tome un compilador C compatible

CC=gcc rvm install-version

Entonces, si está usando Ruby 1.9.3, utilícelo de esta manera

CC=gcc rvm install-1.9.3

Utilice este comando cada vez que no pueda agrupar la instalación ni nada. Esto funciona en El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Con suerte, resolverá el problema.

Me enfrentaba al mismo problema de las últimas dos semanas mientras intentaba ejecutar una aplicación de la versión Rails 3.

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

Use este comando para que rvm tome un compilador C compatible

CC=gcc rvm install-version

Entonces, si está usando Ruby 1.9.3, utilícelo de esta manera

CC=gcc rvm install-1.9.3

Utilice este comando cada vez que no pueda agrupar la instalación ni nada.

Esto funciona en El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Con suerte, resolverá el problema. Y además, si ya tiene el Xcode y no está recibiendo los mismos errores al instalar ninguna gema, pruebe esta solución.


1

Agregué mis hallazgos aquí después de encontrarme con este mismo problema poco después de una actualización: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

La solución simplemente son estos 2 comandos:

xcode-select --install
gem install nokogiri

Espero eso ayude.


5
Publique el material aquí; los enlaces pueden romperse (consulte las pautas)
Justin

Me ayudó, aunque me hago eco del sentimiento de publicar la respuesta aquí, en lugar de en un enlace :)
Richard

Esto es lo que se considera una respuesta de solo enlace que no se recomienda en Stack Overflow. En lugar de solo publicar un enlace a su propio sitio, también resuma la información importante en su respuesta. De esa forma, si el enlace se pudre, como suele ocurrir, la respuesta seguirá aportando algo de valor.
The Tin Man

0

Yo también tuve este problema. La ejecución brew doctormostró 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 volví a preparar 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

Tuve un problema similar (un libiconv desvinculado). Desvinculé libiconv y lo reinstalé. brew install libiconv, luego gem install nokogirl.
Ben

0

Ninguna de estas respuestas funcionó para mi caso particular, y como soy un novato, 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 intentando actualizar a Ruby 1.9.3p550 o superior. Usé RVM, luego intenté migrar mis gemas y muchas de ellas no funcionaron. Luego traté de 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 dijo que descargara un GCC de terceros, lo cual hice. lo que empeoró todo.

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

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

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

El uso sudohará que Nokogiri se instale en el único Ruby conocido por root, que es muy probable que sea el Ruby instalado por Apple a menos que use Homebrew. Debido a que el OP estaba usando RVM, eso significa que Nokogiri no sería visto por un Ruby administrado por RVM, y solo agravaría el problema. El uso sudopodría haber funcionado en este caso, pero no debería intentarse con un Ruby administrado por RVM o rbenv. RVM dice específicamente que no lo haga en la documentación de instalación .
The Tin Man,

0

para Windows, también puede probar la instalación local:

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

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

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

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


0

Cada maldita cosa aquí no lo hizo por mí (no entré en las reinstalaciones de brebaje, oy), pero esto finalmente lo hizo (encontrado a través de un informe de error en algún proyecto no relacionado):

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

Buena suerte. ¡Hurra por #yakshaving!


-3

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

gem install nokogiri

deberías usar este comando. terminal abierta. y escriba este comando. export NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.