ruby 2.0 rails gem安装错误"无法加载此类文件 - openssl"

Ste*_*yen 44 ruby ruby-on-rails

我正在使用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
Run Code Online (Sandbox Code Playgroud)

我有红宝石1.9.x和rails 3.2.x之前工作正常

Val*_*von 49

您必须先安装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
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用_没有_`--with-gcc`标志,FWIW。 (9认同)
  • 我建议你将 `ruby_configure_flags=--with-openssl-dir="$rvm_path/usr"` 添加到 `~/.rvm/user/db` 以便如果你再次重新安装 Ruby 以添加另一个包,你就不需要忘记包含 OpenSSL。 (4认同)
  • 在Windows上怎么样? (4认同)

xyz*_*xyz 30

如果您正在使用RVM,请按照:

$ brew install automake
$ rvm pkg install openssl
$ rvm requirements run
$ rvm reinstall all --force
$ gem install rails
Run Code Online (Sandbox Code Playgroud)

它对我有用.


Pra*_*hra 7

这个错误我的时间非常糟糕.最后我完成了它.只有使用RVM或没有RVM的解决方案.

确保在安装ruby之前首先安装了OpenSSL.

RVM

  1. 卸载rvm

    rvm implode

要么

rm -rf ~/.rvm
Run Code Online (Sandbox Code Playgroud)

不要忘记删除.bashrc和/或.bash_profile(或您正在使用的任何shell)中的脚本调用.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
Run Code Online (Sandbox Code Playgroud)

没有RVM

首先你应该找到Ruby的位置:

whereis ruby
Run Code Online (Sandbox Code Playgroud)

将列出系统中存在的所有位置,然后您可以显式删除所有这些位置.或者你可以使用这样的东西:

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
Run Code Online (Sandbox Code Playgroud)

然后

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
Run Code Online (Sandbox Code Playgroud)

我希望这对你有帮助.


小智 7

我为 ruby​​ 2.1.2 修复了此错误,如下所示。

rvm pkg install openssl
rvm reinstall ruby-2.1.2 --with-openssl-dir=$rvm_path/usr
Run Code Online (Sandbox Code Playgroud)