web-dev-qa-db-fra.com

ruby 2.0 Rails gem install erreur "impossible de charger un tel fichier - openssl"

J'utilise osx 10.8.2 installed Ruby 2.0 et .... obtenu ceci en essayant de lancer "Sudo gem install Rails"

$ Sudo gem install Rails
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'avais bien Ruby 1.9.x et Rails 3.2.x avant

41
Stephen Nguyen

Vous devez d'abord installer OpenSSL, puis recompiler Ruby:

RVM:

rvm pkg install openssl
rvm reinstall Ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr
48
Valery Kvon

Si vous utilisez RVM, veuillez suivre:

$ brew install automake
$ rvm pkg install openssl
$ rvm requirements run
$ rvm reinstall all --force
$ gem install Rails

Cela a fonctionné pour moi.

30
xyz

J'ai passé un très mauvais moment avec cette ERREUR… .. Enfin, j'en ai fini avec. Il n'y a qu'une seule solution, que vous soyez avec RVM ou sans RVM.

Assurez-vous d'avoir installé OpenSSL avant AVANT d'installer Ruby.

RVM

  1. Désinstaller rvm

    rvm imploser

ou

rm -rf ~/.rvm

N'oubliez pas de supprimer les appels de script dans vos fichiers .bashrc et/ou .bash_profile (ou quel que soit le shell que vous utilisez) . Sudo apt-get install zlib1g dev libyaml-dev curl git-core python-software-properties libpq-dev nodejs

Ensuite, installez RVM, post Ruby.

OR

rvm pkg install openssl
rvm reinstall Ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr

SANS RVM

D'abord, vous devriez trouver où est Ruby:

whereis Ruby

listera tous les endroits où il existe sur votre système, vous pourrez alors les supprimer explicitement. Ou vous pouvez utiliser quelque chose comme ceci:

rm -rf /usr/local/lib/Ruby
rm -rf /usr/lib/Ruby
rm -f /usr/local/bin/Ruby
rm -f /usr/bin/Ruby
rm -f /usr/local/bin/irb
rm -f /usr/bin/irb
rm -f /usr/local/bin/gem
rm -f /usr/bin/gem

PUIS

Sudo apt-get install zlib1g zlib1g-dev build-essential openssl libssl-dev libmysqlclient18 libmysqlclient-dev libyaml-dev curl git-core python-software-properties libpq-dev nodejs

apt-get -y update
apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
cd /tmp
wget http://cache.Ruby-lang.org/pub/Ruby/2.0/Ruby-2.0.0-p247.tar.gz
tar -xvzf Ruby-2.0.0-p247.tar.gz
cd Ruby-2.0.0-p247/
./configure --prefix=/usr/local
make
make install

J'espère que cela vous aidera. 

5
Pravin Mishra

Sous OSX, avec rbenv et homebrew, les éléments suivants ont fonctionné pour moi:

brew install openssl
CONFIGURE_OPTS=--with-openssl-dir=$(brew --prefix openssl) rbenv install whatever-Ruby-version
3
hjing

Assurez-vous de consulter cette page sur le site de RVM: https://rvm.io/packages/openssl/

Fonctionnement

rvm requirements run

m'a donné:

Missing required packages: autoconf, automake, libtool, pkg-config, Apple-gcc42, readline, libxml2, libxslt, libksba, openssl, sqlite

après brew install autoconf automake ...

J'ai pu rvm reinstall 2.0.0 sans erreurs openssl

1
Josan

J'ai eu le même problème avec la même version du système d'exploitation. J'utilise rvm et j'ai suivi les étapes de cette commande:

$ rvm requirements

En suivant ces instructions, j'ai couru:

$ brew update
$ brew tap homebrew/dupes
$ brew install bash curl git
$ brew install autoconf automake Apple-gcc42 libtool pkg-config openssl readline libyaml sqlite libxml2 libxslt libksba
1
Robert Mackenzie

J'ai eu le même problème plus tôt, j'ai essayé tous les extraits et aucun d'entre eux n'a fonctionné. Après avoir cherché un peu, les éléments suivants ont fonctionné pour moi:

$ rvm remove 2.0.0 # get rid of unsuccessful installation
$ rvm get head --autolibs=3 # get the latest RVM and build required libs
$ rvm requirements # just in case, install all other required stuff
$ rvm install Ruby-2.0.0
$ rvm --default use Ruby-2.0.0

Que fait rvm get head --autolibs=3 exactement? Je suppose que cela télécharge automatiquement les dépendances, mais j'espérais une réponse claire.

1
Nikola

Cela a fonctionné pour moi, ce qui est similaire à certaines des autres réponses déjà postées. 

rvm pkg install openssl
rvm reinstall all --force
1
Flynn

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 à cause 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"

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

Ensuite

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

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

1
fdibartolo

J'ai rencontré la même erreur openssl sur Fedora lorsque j'essayais d'utiliser gem install <package>. Il semble que vous deviez installer des paquets supplémentaires avec yum/dnf

Sudo dnf install rubygems rubygem-bundler Ruby-devel mariadb-devel

Après avoir exécuté la commande ci-dessus, gem install <package> devrait maintenant fonctionner.

0
Adam Prax