Gem 安装产生“OpenSSL”错误

Gem 安装产生“OpenSSL”错误

至少一周以来,我一直在尝试使用 gem 在我的 Raspberry PI 上安装 Bettercap,但每当我输入:

sudo gem install bettercap

我收到一条错误消息,上面写着

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

向其他人建议的每个修复都没有结果:

选项 1:“http 选项”

根据回答菲利波·德博尔托利这个线程对于同样的问题,禁用 https 协议即可解决。但是运行这些命令后:

gem source -r https://rubygems.org/ 
gem source -a http://rubygems.org/

我仍然收到此错误:

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

选项 2:重建

正如建议的菲利波·德博尔托利在里面同一线程他在安装 OpenSSL 后重新安装了 ruby​​,但是我的 raspbian 附带了 OpenSSL,运行sudo apt-get install openssl只能确认我拥有最新版本。自从我开始得到这个以来,我也重建了 ruby​​ 3 次。

选项 3:本地安装

在发现您可以在本地安装 gems 后,我安装了源代码并运行。

sudo gem install --local bettercap-1.6.2b.gem

并得到输出:

ERROR:  Could not find a valid gem 'em-proxy' (>= 0.1.8, ~> 0.1) in any repository

我猜测,因为它只是搜索本地磁盘,所以找不到它需要的依赖项,所以我决定在本地安装“em-proxy”只是为了找到它需要的依赖项,这也需要依赖项。伟大的。因此,为了保持理智,我决定放弃它,但这总体上是不切实际的。


总结一下,我如何摆脱这个错误或至少绕过它?

以防万一您想知道这里的输出gem -v

2.4.5

和输出ruby -v

ruby 2.2.2p95 (2015-04-13 revision 50295) [armv6l-linux-eabihf]

答案1

在 Debian/Ubuntu 上从源代码编译 ruby​​ 2.3.6 时也遇到了这个问题。通过pkg-config另外安装来解决它libssl-dev,例如完整的说明:

$ sudo apt install \ make \ gcc \ pkg-config \ libssl1.0-dev \ libreadline-dev \ libgdbm-dev \ zlib1g-dev \ libyaml-dev \ libffi-dev \ libgmp-dev \ openssl $ ./configure --disable-install-rdoc $ make -j2 $ sudo make install

请注意,该libssl-dev软件包不兼容ruby2.3(请参阅:https://github.com/rvm/rvm/issues/3862#issuecomment-277512130)所以在 Debian/Stretch 或 Ubuntu/Xenial 上您需要安装libssl1.0-dev

相关内容