versiones ver rails instalar ruby-on-rails ruby nokogiri

ruby-on-rails - instalar - ver version de rails



''require'': no se puede cargar dicho archivo-''nokogiri / nokogiri''(LoadError) cuando se ejecuta `rails server` (4)

  1. Primero, desinstale la versión de Nokogiri que tiene actualmente con:

    gem uninstall nokogiri

  2. Descargar Nokogiri 1.6.6.2 (x64) o Nokogiri 1.6.6.2 (x86)

  3. Instale esta versión localmente usando:

    gem install --local C:/Users/$user$/Downloads/nokogiri-1.6.6.2-x64-mingw32.gem

    o si estás ejecutando Ruby de 32 bits:

    gem install --local C:/Users/$user$/Downloads/nokogiri-1.6.6.2-x86-mingw32.gem

    La ruta puede variar según el lugar donde descargó el archivo.

Intente iniciar el servidor nuevamente utilizando el servidor ruby bin/rails server , y debería funcionar.

Estoy ejecutando una instalación limpia de Ruby 2.2.1 en Windows 8.1 con DevKit. Después de la instalación ejecuto:

gem install rails rails new testapp cd testapp rails server

dejando todo lo demás por defecto.

El proceso falla en la última línea cuando, en lugar de ejecutar el servidor, recibo el mensaje de error

in ''require'': cannot load such file -- ''nokogiri/nokogiri'' (LoadError)

Sucede cada vez y he mirado alrededor e intentado todo lo que encontré para solucionarlo, pero hasta ahora nada ha funcionado.

¿Cuál es el problema aquí y cómo consigo que funcione una aplicación Rails de prueba simple?



Obtuve Nokogiri con Ruby 2.2 en Windows 10 con una mezcla de Mike Dalessios y Julios.

  1. Busque la última versión de Nokogiri en https://github.com/sparklemotion/nokogiri/issues/1256 .
  2. Ejecute la gem uninstall nokogiri .
  3. Agregue la gem "nokogiri", ">= 1.6.7.rc" a su Gemfile.
  4. Ejecute la bundle install .
  5. Ejecute la bundle update nokogiri si el paquete ha bloqueado a Nokogiri en alguna versión.

Reparar

  1. Instalación de paquete (obtiene archivos Nokogiri)
  2. Vaya a ruby_dir/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2/ext/nokogiri
  3. Abra extconf.rb
  4. Agregue dir_config(''iconv'').any? or pkg_config(''libiconv'') dir_config(''iconv'').any? or pkg_config(''libiconv'') a #376
  5. Descargue las carpetas MinGW64 y MSYS de Mega
  6. PATH a PATH en Windows (elimine las referencias de ruta de Devkit , no funciona)
  7. Descargue las libxml2 , libxslt , iconv (o here )
  8. Ejecute ruby extconf.rb --platform=ruby --n --use-system-libraries haciendo referencia a bibliotecas descargadas
  9. Corre make
  10. Ejecute make install

Pasos

Instalación de paquete

El primer paso es agrupar .

Esto colocará la gema nokogiri en su máquina sin ejecutar el compilador preenvasado (que en su mayoría no funciona en Windows).

Esto mostrará Nokogiri como instalado :

Vistazo

Busque la carpeta nokogiri para encontrar ext/nokogiri/extconf.rb :

Abra extconf.rb

... y agregue dir_config(''iconv'').any? or pkg_config(''libiconv'') dir_config(''iconv'').any? or pkg_config(''libiconv'') a #376

Las instalaciones estándar de Nokogiri "confían" en la inclusión libxml2 de iconv . Necesitamos definirlo explícitamente, de lo contrario se producirán errores en iconv.h is missing

Agregar cadena de herramientas

No use devkit para esto, no funciona.

Necesitas MinGW :

MinGW64 MSYS64 carpetas exactas MinGW64 y MSYS64 en Mega (clave !FJtcq25l-QMsNltCxllMhc1IGqORvap8xv8gWxSUbDA ):

Agregar a RUTA

Esto le da acceso a gcc & make (ambos requeridos):

Elimine el devkit ref de su ruta y agregue lo siguiente:

  • MINGW64_PATH / bin
  • MSYS64_PATH / bin

Descargar Libs

He agregado las librerías a Mega:

Los descomprimirás aquí:

Todas las bibliotecas son de here .

Ejecute extconf.rb

Una vez que las bibliotecas estén en su sistema, puede ejecutar ruby extconf.rb para configurar la compilación:

32bit

ruby extconf.rb --platform=ruby -N -- --use-system-libraries --with-xml2-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/libxml2-2.9.2-win32-x86 --with-xml2-include=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/libxml2-2.9.2-win32-x86/include/libxml2 --with-iconv-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/iconv-1.14-win32-x86 --with-xslt-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/32bit/libxslt-1.1.28-win32-x86

64bit

#64 ruby extconf.rb --platform=ruby -N -- --use-system-libraries --with-xml2-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/libxml2-2.9.2-win32-x86_64 --with-xml2-include=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/libxml2-2.9.2-win32-x86_64/include/libxml2 --with-iconv-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/iconv-1.14-win32-x86_64 --with-xslt-dir=C:/Dev/Dependencies/Ruby/lib/nokogiri/64bit/libxslt-1.1.28-win32-x86_64

make

Esto puede crear errores / advertencias, siempre que diga " Error 1 (ignored) ", debería estar bien.

Después de eso, use make install :

Luego vaya a la instalación de Rails y ejecute rails s :

Explicación

Para dar contexto:

Ruby 2.2+ en Windows no compila las extensiones que Nokogiri requiere.

Las extensiones de una gema son las dependencias adicionales (bibliotecas) que usa.

Se construyen cuando instalas la gema:

Extensions

La falta de extensiones impide que Nokogiri se ejecute.

Existen extensiones en la carpeta ext de una gema ( Extensions ):

Mysql2 , RMagick , Mysql2 , RMagick , PGSQL usan extensiones / bibliotecas.

Esta es la razón por la cual, en Windows, debe usar interruptores personalizados ( --with-opt-dir ) al instalar la gema. Esto le da a Ruby / the shell / ( cmd ) los directorios lib / include necesarios para construir los archivos de la gema (es el equivalente de cómo funciona PATH ).

En Linux / Mac , estos directorios se administran con los respectivos administradores de paquetes ( brew / apt-get ). Windows no tiene esto, por lo que debe instalar las extensiones manualmente.

Como Windows no tiene un conjunto estándar de bibliotecas, debe descargarlas usted mismo. También tienes que construirlos tú mismo (lo cual es complicado).

La solución para la instalación de Nokogiri es usar las bibliotecas y herramientas de compilación adecuadas para instalar la gema.

Construir

La diferencia con Ruby 2.2+ es que la gema se "instalará" sin mostrar ninguna excepción. Cree que se ha instalado, solo para encontrar que Rails no se carga (de ahí el error nokogiri/nokogiri.so ).

Esto significa que debe asegurarse de tener los archivos en su sistema y ejecutar el compilador para instalarlos.

La documentación anterior debería mostrarle cómo hacerlo.