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

问题描述 投票:48回答:11

我使用的是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

之前我有ruby 1.9.x和rails 3.2.x可以正常工作

ruby-on-rails ruby
11个回答
59
投票

您必须先安装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

0
投票

我在尝试使用gem install <package>时在Fedora上遇到了相同的openssl错误。似乎您需要使用yum / dnf安装其他软件包

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

运行上述命令后,gem install <package>现在应该可以工作。


-1
投票

如果使用ruby-install,它将使用与rvm相同的openssl参数:

ruby-install ruby-2.0.0-p247 -- --with-openssl-dir=/usr/local/opt/openssl

32
投票

如果您使用的是RVM,请遵循:

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

对我有用。


7
投票

我在遇到此错误时经历的非常糟糕。最后我做了。使用RVM或不使用RVM都只有一次解决方案。

确保在安装ruby之前先安装OpenSSL。

RVM

  1. 卸载rvm

    rvm内爆

rm -rf ~/.rvm

[请不要忘记删除.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。

OR

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

THEN

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

希望对您有帮助。


3
投票

这对我有用,类似于已经发布的其他一些答案。

rvm pkg install openssl
rvm reinstall all --force

3
投票

在OSX上,使用rbenv和homebrew,以下对我有用:

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

1
投票

安装ruby 2.0时,由于openssl,rubygems 2.0安装可能没有完成。确保您提供了指向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安装成功完成。可能是一种无需重新安装即可修复该路径的更好方法,但是应该这样做。


1
投票

请确保在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错误


1
投票

我在相同的操作系统版本上遇到了相同的问题。我使用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

1
投票

我之前有同样的问题,尝试了所有片段,但都没有解决。在四处寻找之后,以下内容对我有用:

$ 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到底做什么?我猜想它会自动下载依赖项,但我希望得到一个明确的答案。

© www.soinside.com 2019 - 2024. All rights reserved.