Installez Ruby 2.0 avec le support OpenSSL et ReadLine

12

J'ai une nouvelle machine virtuelle Ubuntu 12.04 et j'aimerais installer Ruby 2.0.0-p0. Je peux installer Ruby assez facilement, mais je n'arrive pas à faire fonctionner les gemmes.

$ 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

J'ai ouvert SSL installé, donc je ne sais pas exactement quel est le problème.

$ 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.

De même,

$ which openssl
/usr/bin/openssl

Si je reviens à l'installation, il y a deux lignes qui me concernent.

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

Merci!

Jarrett Meyer
la source

Réponses:

9

Dans votre emplacement source, cd ext/opensslpuis ruby extconf.rb. Cela générera un makefile dans le répertoire ext / openssl . Il suffit make && sudo make installde créer l' extension rubs openssl et d'installer le .so à l'emplacement approprié.

Idem ext/readlinepour le support readline.

Ensuite, vous devriez pouvoir makerubis correctement.

Edit : au cas où je ne serais pas assez clair:

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
la source
1
Remarque: cette réponse concerne la construction et l'installation manuelle de Ruby et de ses modules d'extension. Voir la réponse de @ chris-d'pour une réponse purement basée sur les apt.
Matty K
1
Je suis resté bloqué sur la troisième ligne, en essayant de makeen ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.Même chose pour ext/readline.
ZX9
@ ZX9 J'ai eu le même problème, la solution ici a fonctionné pour moi.
jgon
5

Je suis tombé sur le même problème, j'ai dû installer les deux packages suivants

libssl-dev
libreadline-dev 

en fait, j'ai trouvé que je devais installer les paquets suivants pour obtenir ruby ​​2.0.0 et postgres 9.2 à compiler sur ubuntu 13.04 avec openssl et readline donc j'ai pensé que je les partagerais

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
la source
3

pour moi, c'était un cas de dépendances manquantes.

je pensais avoir toutes les dépendances nécessaires pour installer ruby, mais moi aussi j'obtenais une erreur openSSL et readline.

j'ai essayé d'installer ruby ​​avec RVM sans privilèges root qui a échoué mais m'a donné une liste des dépendances manquantes. j'ai ensuite installé les dépendances avec un gestionnaire de paquets. j'ai ensuite ré-essayé d'installer ruby ​​depuis la source depuis le début, et tout a bien fonctionné

les dépendances qui manquaient, pour moi, étaient:

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

mais ils peuvent être différents pour vous.

mise à jour: je ne me souviens pas à l'origine où j'ai trouvé cette liste, mais une recherche rapide a trouvé des listes similaires sur les pages suivantes, ce qui pourrait également vous aider:

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

infinite-etcetera
la source
0

Lors de l'installation de ruby ​​2.0, il est possible que l'installation de rubygems 2.0 ne se soit pas terminée correctement, en raison de openssl. Assurez-vous de fournir un chemin d'accès valide au fichier de configuration openssl; vous pourriez:

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

le chemin est généralement $ HOME / .rvm / usr ou $ HOME / .rvm / usr / ssl

alors

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

Assurez-vous que l'installation de rubygems s'est terminée avec succès. Cela pourrait être un meilleur moyen de corriger ce chemin sans réinstaller, mais cela devrait le faire.

fdibartolo
la source
1
J'essaie une installation sans RVM ou RBENV. Compilation à partir de sources. D'où les étapes ./configure, make et make install. Merci quand même.
Jarrett Meyer