ruby centos nokogiri gitlab

No se puede instalar Nokogiri en CentOS con una versión de Ruby superior a la requerida



gitlab (3)

Después de trabajar con alguien que está más familiarizado con CentOS, descubrí que el problema se debía a que no tenía cmake instalado, además de intentar instalar una gema a través de sudo .

Consejo: Cuando instale gemas, siempre use el usuario raíz.

Debajo está lo que probé en mi servidor CentOS6.5. Ya actualicé Git y Ruby, pero todavía no puedo conseguir que se instale. La primera sección es donde intenté instalarlo como usuario sudo. La segunda sección es cuando intenté instalarlo por root.

¿Alguien puede ofrecer otras ideas sobre cómo solucionar esto? Me está costando encontrar soluciones para este problema.

Sección 1:

[user@server gitlab-rails]$ sudo gem install nokogiri -- --use-system-libraries [sudo] password for user: Fetching: mini_portile-0.6.2.gem (100%) Successfully installed mini_portile-0.6.2 Fetching: nokogiri-1.6.6.2.gem (100%) ERROR: Error installing nokogiri: nokogiri requires Ruby version >= 1.9.2. [user@server gitlab-rails]$ ruby --version ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]

Sección 2:

[root@server gitlab-rails]# gem install nokogiri -- --use-system-libraries Building native extensions with: ''--use-system-libraries'' This could take a while... ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb --use-system-libraries checking if the C compiler accepts ... yes Building nokogiri using system libraries. libxml2 version 2.6.21 or later is required! *** 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 --without-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=/usr/local/bin/ruby --help --clean --use-system-libraries --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-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib --without-xml2-lib=${xml2-dir}/lib --with-libxml-2.0-config --without-libxml-2.0-config --with-pkg-config --without-pkg-config --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-exslt-dir --without-exslt-dir --with-exslt-include --without-exslt-include=${exslt-dir}/include --with-exslt-lib --without-exslt-lib=${exslt-dir}/lib --with-libexslt-config --without-libexslt-config extconf failed, exit code 1 Gem files will remain installed in /usr/local/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.6.2 for inspection. Results logged to /usr/local/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/nokogiri-1.6.6.2/gem_make.out


Estos mensajes de error me parecen bastante claros: está usando un rubí viejo en primera instancia (y se encuentra con el comportamiento de Rubygems (no con el comportamiento de Nokogiri)), y tratando de vincularlo a una versión anterior (con errores conocidos) de libxml2 en el segundo (este es el control de cordura de Nokogiri).

Si quiere "arreglarlo", asegúrese de estar usando la versión correcta de Ruby, e instale un libxml2 aceptable o permita que Nokogiri use sus versiones originales para usted.


yum install libxslt-devel libxml2-devel bundle config build.nokogiri --use-system-libraries bundle install