Installa Ruby 2.0 con supporto OpenSSL e ReadLine


12

Ho una nuova Ubuntu 12.04 VM e vorrei installare Ruby 2.0.0-p0. Sono in grado di installare Ruby abbastanza facilmente, ma non riesco a far funzionare le gemme.

$ 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

Ho installato SSL aperto, quindi non sono esattamente sicuro di quale sia il 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.

Allo stesso modo,

$ which openssl
/usr/bin/openssl

Se torno all'installazione, ci sono due righe che mi riguardano.

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

Grazie!

Risposte:


9

Nella posizione di origine cd ext/openssle quindi ruby extconf.rb. Questo genererà un makefile nella directory ext / openssl . Semplicemente make && sudo make installper creare l' estensione rubs openssl e installare .so nella posizione appropriata.

Idem ext/readlineper il supporto readline.

Quindi dovresti essere in grado di makerubare correttamente.

Modifica : nel caso non fossi abbastanza chiaro:

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

1
Nota: questa risposta è per compilare e installare manualmente Ruby e i suoi moduli di estensione. Vedi la risposta di @ chris-d per una risposta basata su apt.
Matty K,

1
Mi sono bloccato sulla terza linea, cercando di makein ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.Stessa cosa per ext/readline.
ZX9,

@ ZX9 Ho avuto lo stesso problema, la soluzione qui ha funzionato per me.
Jgon

5

Ho riscontrato lo stesso problema, ho dovuto installare i seguenti due pacchetti

libssl-dev
libreadline-dev 

infatti ho scoperto che dovevo installare i seguenti pacchetti per ottenere ruby ​​2.0.0 e postgres 9.2 da compilare su Ubuntu 13.04 con openssl e readline, quindi ho pensato di condividerli

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

3

per me è stato un caso di dipendenze mancanti.

Ho pensato che ho avuto tutte le dipendenze necessarie per installare rubino, ma anche io ero ottenere un openSSL ed errori readline.

ho tentato di installare ruby ​​con RVM senza i privilegi di root, ma non mi ha dato un elenco di dipendenze mancanti. ho quindi installato le dipendenze con un gestore pacchetti. ho quindi riprovato a installare ruby ​​dall'inizio, e tutto ha funzionato bene

le dipendenze che mancavano, per me, erano:

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

ma potrebbero essere diversi per te.

aggiornamento: inizialmente non ricordo dove ho trovato esattamente questo elenco, ma una rapida ricerca ha trovato elenchi simili nelle pagine seguenti, che potrebbero anche aiutarti:

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


0

Quando si installa ruby ​​2.0, è possibile che l'installazione di rubygems 2.0 non sia stata completata correttamente, a causa di openssl. Assicurati di fornire un percorso valido per il file di configurazione openssl; potresti:

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

il percorso è di solito $ HOME / .rvm / usr o $ HOME / .rvm / usr / ssl

Poi

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

Assicurarsi che l'installazione di rubygems sia stata completata correttamente. Potrebbe essere un modo migliore per correggere quel percorso senza reinstallare, ma questo dovrebbe farlo.


1
Sto provando un'installazione senza RVM o RBENV. Compilando solo da fonti. Da qui i passaggi ./configure, make e make install. Grazie comunque.
Jarrett Meyer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.