Подтвердить что ты не робот

Ruby 2.0 rails gem install error "невозможно загрузить такой файл - openssl"

Я использую 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, работающие нормально до

4b9b3361

Ответ 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

Ответ 2

Если вы используете RVM, выполните следующие действия:

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

Это сработало для меня.

Ответ 3

У меня было очень плохое время с этой ОШИБКОЙ. Наконец, я сделал это. Существует только одно решение, либо вы с 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

Надеюсь, это поможет вам.

Ответ 4

В OSX, с rbenv и homebrew, для меня работало следующее:

brew install openssl
CONFIGURE_OPTS=--with-openssl-dir=$(brew --prefix openssl) rbenv install whatever-ruby-version

Ответ 5

При установке 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 завершена успешно. Возможно, это лучший способ исправить этот путь без переустановки, но это должно сделать это.

Ответ 6

Не забудьте проверить эту страницу на сайте 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

Ответ 7

У меня была та же проблема с той же версией ОС. Я использую 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

Ответ 8

Это сработало для меня, что похоже на некоторые из уже опубликованных ответов.

rvm pkg install openssl
rvm reinstall all --force

Ответ 9

У меня была такая же проблема раньше, попробовал все фрагменты, и ни одна из них не сработала. Немного оглядевшись, я работал:

$ 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 точно? Я предполагаю, что он автоматически загружает зависимости, но я надеялся на четкий ответ.

Ответ 10

При попытке использовать gem install <package> я столкнулся с той же ошибкой openssl на Fedora. Кажется, вам нужно установить дополнительные пакеты с помощью yum/dnf

sudo dnf install rubygems rubygem-bundler ruby-devel mariadb-devel

После выполнения указанной команды gem install <package> теперь должен работать.