ruby2.0轨道gem安装错误“无法加载这样的文件 – openssl”

我正在使用osx 10.8.2安装ruby2.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 

我有ruby1.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 

它为我工作。

我有这个错误非常糟糕的时间。 最后我完成了它。 只有一次解决scheme,无论你是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。

要么

 rvm pkg install openssl rvm reinstall ruby-2.0.0-p0 --with-gcc=gcc-4.7 --with-openssl-dir=$rvm_path/usr 

没有RVM

首先你应该findRuby的位置:

 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时,由于openssl的原因,rubygems 2.0的安装可能还没有完成。 确保你提供了一个有效的opensslconfiguration文件path; 你可以:

 find . -type f -name "openssl.cnf" 

path通常是$ 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是什么rvm get head --autolibs=3准确的? 我猜想它会自动下载依赖,但我希望得到一个明确的答案。

在尝试使用gem install <package>时,我在Fedora上遇到了同样的openssl错误。 看来你需要用yum / dnf来安装额外的软件包

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

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