至少一周以来,我一直在尝试使用 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
。