已安装 OpenSSL,但 Ruby 无法要求它

7 ruby github openssl

我正在尝试在我的 Ubuntu 笔记本电脑上设置github-pages,并且按照 Github 提供的指南,我必须安装bundler包;发出命令

~$ gem install bundler
Run Code Online (Sandbox Code Playgroud)

返回我这个错误。

ERROR: While executing gem ... (Gem::Exception) Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

然后我安装了 OpenSSL,启动了更新软件和东西的命令,并再次尝试安装bundler,但错误一直显示。

我怎样才能解决这个问题?是否有任何特定的命令来重建 ruby​​ 使其了解现在已安装 openSSL 的事实?

小智 8

我已经找到了我自己问题的答案,我认为作为答案发布而不是编辑问题会更清楚。

一次尝试。让我们通过非安全源链接的路径。

正如这里所指出的,绕过 openSSL 检查的一种可能选择是删除安全https链接并添加非安全链接:

gem source -r https://rubygems.org/
gem source -a http://rubygems.org/
Run Code Online (Sandbox Code Playgroud)

这样,安装似乎很顺利,但是在该过程中的某个地方又需要openSSL(对于nokogiri gem,如果我记得很清楚的话)。

2尝试。重建 Ruby(太简单了)。

当我问这个问题时,我的大脑可能无法正常工作。按照通常的方式安装 openSSL 后:

sudo apt-get install openssl
Run Code Online (Sandbox Code Playgroud)

我到了我的 ruby​​ 目录并输入了以下几行:

pushd ext/openssl
ruby extconf.rb
make
make install
popd
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我解决了所有依赖问题和问题(我猜)。然后,运行

./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

我重建了 Ruby,最后安装顺利。