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
-
卸载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>
现在应该可以工作了。