Instale Ruby 2.0 con soporte OpenSSL y ReadLine

12

Tengo una nueva máquina virtual Ubuntu 12.04 y me gustaría instalar Ruby 2.0.0-p0. Puedo instalar Ruby con bastante facilidad, pero no puedo hacer que las gemas funcionen.

$ gem install bundler
ERROR:  Loading command: install (LoadError)
cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

Tengo instalado SSL abierto, así que no estoy exactamente seguro de cuál es el problema.

$ sudo apt-get install libssl1.0.0 libssl-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libssl-dev is already the newest version.
libssl1.0.0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Similar,

$ which openssl
/usr/bin/openssl

Si vuelvo a la instalación, hay dos líneas que me preocupan.

$ sudo make install
Failed to configure openssl. It will not be installed.
Failed to configure readline. It will not be installed.

¡Gracias!

Jarrett Meyer
fuente

Respuestas:

9

En su ubicación de origen, cd ext/openssly luego ruby extconf.rb. Esto generará un archivo MAKE en el directorio ext / openssl . Simplemente make && sudo make installconstruya la extensión ruby openssl e instale el .so en la ubicación adecuada.

Lo mismo ext/readlinepara el soporte de readline.

Entonces deberías poder makerubí correctamente.

Editar : en caso de que no estuviera lo suficientemente claro:

pushd ext/openssl
ruby extconf.rb
make && sudo make install
popd

pushd ext/readline
ruby extconf.rb
make && sudo make install
popd

make
sudo make install
Matty K
fuente
1
Nota: esta respuesta es para construir e instalar manualmente Ruby y sus módulos de extensión. Vea la respuesta de @ chris-d para obtener una respuesta pura basada en apt.
Matty K
1
Me quedé atrapado en la tercera línea, intentando makeen ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.Lo mismo para ext/readline.
ZX9
@ ZX9 Tuve el mismo problema, la solución aquí funcionó para mí.
jgon
5

Me encontré con el mismo problema, tuve que instalar los siguientes dos paquetes

libssl-dev
libreadline-dev 

de hecho, descubrí que tenía que instalar los siguientes paquetes para obtener ruby ​​2.0.0 y postgres 9.2 para compilar en ubuntu 13.04 con openssl y readline, así que pensé en compartirlos

sudo apt-get -y update
sudo apt-get install -y make g++
sudo apt-get install -y curl git-core python-software-properties
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev
sudo apt-get install -y libgdbm-dev libreadline6-dev libncurses5-dev
sudo apt-get install -y libpq-dev libffi-dev
Chris D
fuente
3

para mí fue un caso de dependencias faltantes.

i pensado que tenía todas las dependencias necesarias para instalar el rubí, pero yo también era conseguir una openSSL y error readline.

Traté de instalar ruby ​​con RVM sin privilegios de root que falló pero me dio una lista de dependencias faltantes. Luego instalé las dependencias con un administrador de paquetes. Luego volví a intentar instalar Ruby desde el origen desde el principio, y todo funcionó bien

las dependencias que faltaban, para mí, fueron:

patch libyaml-devel autoconf gcc-c++ readline-devel libffi-devel openssl-devel automake libtool bison sqlite-devel

pero pueden ser diferentes para ti.

actualización: originalmente no recuerdo exactamente dónde encontré esta lista, pero una búsqueda rápida encontró listas similares en las siguientes páginas, que también podrían ayudarlo:

https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-centos-6-with-rvm

http://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-ruby-on-rails-on-centos-ubuntu-fedora-from-source.html

infinito-etcétera
fuente
0

Al instalar ruby ​​2.0, es posible que la instalación de rubygems 2.0 no se haya completado correctamente, debido a openssl. Asegúrese de proporcionar una ruta válida al archivo de configuración openssl; tú podrías:

find . -type f -name "openssl.cnf"

la ruta suele ser $ HOME / .rvm / usr o $ HOME / .rvm / usr / ssl

Luego

[sudo] rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=[openssl.cnf path] --verify-downloads 1

Asegúrese de que la instalación de rubygems se complete con éxito. Podría ser una mejor manera de arreglar ese camino sin reinstalar, pero esto debería hacerlo.

fdibartolo
fuente
1
Estoy intentando una instalación sin RVM o RBENV. Solo compilando de fuentes. De ahí los pasos de instalación ./configure, make y make. Gracias de cualquier forma.
Jarrett Meyer