我在我的虚拟机ubuntu12.04lts中安装了openssl。
当我运行gem命令时,它会出错。
错误:执行gem时(Gem :: Exception)
无法要求openssl。安装openSSL并重建ruby(首选)或使用非HTTPs源
我还在irb模式下测试需要openssl。 它给出了错误。
Loaderror:无法加载此类文件--openssl
来自/usr/local/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55`requiret'
我有openssl
$openssl version
OpenSSL 1.0.1 14 mar 2012
如何解决错误?
答案 0 :(得分:22)
注意:不推荐调用rubygems.org - 请谨慎使用!
在从源代码构建ruby2.1.0p0后,我在Mac OSX上遇到了同样的问题。我已经安装了openssl。似乎宝石中的参考需要刷新。我跑了:
gem source -r https://rubygems.org/
删除
接着是
gem source -a https://rubygems.org/
阅读
在此之后,我能够成功运行gems install bundler
。
如果您遇到其他错误,可以在ruby下载dir /中尝试./configure --with-openssl-dir=/usr/local/ssl
。
答案 1 :(得分:16)
我在使用debian时遇到了这个错误,其中openssl在/ usr / bin。
根据jspacek的建议,我使用以下方法重新配置了ruby:
./configure --with-openssl-dir=/usr/bin
在make和sudo make install之后,我能够安装rails。
答案 2 :(得分:13)
确保安装了libssl-dev:
dpkg -s libssl-dev
如果没有,请安装它:
sudo apt-get -y install libssl-dev
答案 3 :(得分:6)
如果其他人遇到此问题,请尝试重新安装包含openssl的Ruby版本
brew install openssl
rvm reinstall 2.4.0 --with-openssl-dir=`brew --prefix openssl`
您可能已经拥有openssl - 因此您可以忽略第一步。 这对我有帮助。
答案 4 :(得分:4)
我将此答案留给未来的Google员工参考:
在终端(OSX)中键入所有这些命令只是为了确保您已完成所有操作(这最终对我有用)
rvm get stable
brew update
brew doctor
brew install openssl
rvm install ruby-2.1 (or whatever version)
rvm use (ruby version here) i.e. rvm use ruby-2.1
rvm gemset create NAME i.e. rvm gemset create rails41
gem install rails -v 4.1
...最后
正如许多评论者指出的那样 - 在安装rails(或其他gem)之前编译ruby之前需要安装OpenSSL
答案 5 :(得分:3)
您可能在安装OpenSSL之前从源代码构建了Ruby。确保安装它,然后尝试重新配置和重建Ruby。
答案 6 :(得分:1)
运行sudo apt-get install libssl-dev libreadline-dev libgdbm-dev
后重建Ruby可以解决这个问题。
我找到了这个解决方案here。
答案 7 :(得分:1)
最近,由于opensl版本从1.0到1.1的自动更新,我一直在努力地使用ruby进行安装,并希望将其恢复为旧版本。除了下面给出的解决方案,没有其他解决方案对我有用:
brew install rbenv/tap/openssl@1.0
rvm reinstall 1.9.3-p551 --with-openssl-dir='/usr/local/opt/openssl@1.0'
gem update --system
现在,我的ruby在openssl 1.0上运行,而所有其他库在默认的openssl版本1.1上运行。
答案 8 :(得分:0)
对我而言,这是一个缺少依赖关系的案例。
我想我有安装ruby所需的所有依赖项,但我也遇到了openSSL和readline错误。
我试图在没有root权限的情况下使用RVM安装ruby但失败了但是给了我一个缺少依赖项的列表。然后我用包管理器安装了依赖项。然后我重新尝试从头开始安装ruby,一切正常
对我来说,缺少的依赖项是:
patch libyaml-devel autoconf gcc-c++
readline-devel libffi-devel openssl-devel
automake libtool bison sqlite-devel
但它们可能会有所不同。
更新我原本不记得我在哪里找到了这个列表,但快速搜索在以下页面上找到了类似的列表,这也可能对您有所帮助:
https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-centos-6-with-rvm
答案 9 :(得分:0)
我在使用RVM安装Ruby时遇到此错误。没有任何效果。我切换到rbenv。问题解决了!
答案 10 :(得分:0)
这些步骤对我有用:
修复ruby安装:
brew upgrade openssl;
openssldir = which openssl
rvm重新安装ruby-2.4.2 --with-openssl-dir = $ openssldir
删除并重新添加了宝石的来源
宝石来源-r https://rubygems.org/ 宝石来源--add https://rubygems.org/
答案 11 :(得分:0)
openssl_devel安装后
cd folder_of_ruby_source_code/ext/openssl
ruby ./extconf.rb
make
make install
cd folder_of_ruby_source_code
./configure
make clean <= clean is important here
make
make install
答案 12 :(得分:-2)
您使用RVM吗?
如果没有,请尝试使用它,看看它是否解决了您的问题。