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