Ответ 1
Сначала вы должны установить OpenSSL и снова перекомпилировать ruby:
RVM:
rvm pkg install openssl
rvm reinstall ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr
Я использую osx 10.8.2 установленный ruby 2.0 и.... получил это при попытке запустить "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
У меня был рубин 1.9.x и рельсы 3.2.x, работающие нормально до
Сначала вы должны установить OpenSSL и снова перекомпилировать ruby:
RVM:
rvm pkg install openssl
rvm reinstall ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr
Если вы используете RVM, выполните следующие действия:
$ brew install automake
$ rvm pkg install openssl
$ rvm requirements run
$ rvm reinstall all --force
$ gem install rails
Это сработало для меня.
У меня было очень плохое время с этой ОШИБКОЙ. Наконец, я сделал это. Существует только одно решение, либо вы с RVM, либо без RVM.
Убедитесь, что вы установили OpenSSL сначала, прежде чем устанавливать ruby.
РВМ
Удалить rvm
rvm implode
или
rm -rf ~/.rvm
Не забывайте удалять вызовы script в вашем .bashrc и/или .bash_profile (или какой-либо другой оболочке, используемой вами). 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
Затем установите RVM, введите ruby.
ИЛИ
rvm pkg install openssl
rvm reinstall ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr
БЕЗ RVM
Сначала вы должны найти, где Ruby:
whereis ruby
отобразит все места, где он существует в вашей системе, и вы можете удалить их все явно. Или вы можете использовать что-то вроде этого:
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
ТОГДА
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
Надеюсь, это поможет вам.
В OSX, с rbenv и homebrew, для меня работало следующее:
brew install openssl
CONFIGURE_OPTS=--with-openssl-dir=$(brew --prefix openssl) rbenv install whatever-ruby-version
При установке ruby 2.0 возможно, что установка rubygems 2.0 не завершилась нормально, из-за openssl. Убедитесь, что вы указали допустимый путь к файлу конфигурации openssl; вы могли:
find . -type f -name "openssl.cnf"
путь обычно равен $HOME/.rvm/usr или $HOME/.rvm/usr/ssl
Тогда
[sudo] rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=[openssl.cnf path] --verify-downloads 1
Убедитесь, что установка rubygems завершена успешно. Возможно, это лучший способ исправить этот путь без переустановки, но это должно сделать это.
Не забудьте проверить эту страницу на сайте rvm: https://rvm.io/packages/openssl/
Запуск
rvm requirements run
дал мне:
Missing required packages: autoconf, automake, libtool, pkg-config, apple-gcc42, readline, libxml2, libxslt, libksba, openssl, sqlite
после brew install autoconf automake ...
Я смог rvm reinstall 2.0.0
без ошибок openssl
У меня была та же проблема с той же версией ОС. Я использую rvm и следую шагам в этой команде:
$ rvm requirements
Следуя этим инструкциям, я побежал:
$ 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
Это сработало для меня, что похоже на некоторые из уже опубликованных ответов.
rvm pkg install openssl
rvm reinstall all --force
У меня была такая же проблема раньше, попробовал все фрагменты, и ни одна из них не сработала. Немного оглядевшись, я работал:
$ 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
Что делает rvm get head --autolibs=3
точно? Я предполагаю, что он автоматически загружает зависимости, но я надеялся на четкий ответ.
При попытке использовать gem install <package>
я столкнулся с той же ошибкой openssl на Fedora. Кажется, вам нужно установить дополнительные пакеты с помощью yum/dnf
sudo dnf install rubygems rubygem-bundler ruby-devel mariadb-devel
После выполнения указанной команды gem install <package>
теперь должен работать.