使用 RVM 修复 Mac OS Sierra 上未初始化的常量 OpenSSL::Digest::DSS

Fixing uninitialized constant OpenSSL::Digest::DSS on Mac OS Sierra with RVM

我刚刚在我的 Mac (High Sierra) 上解决了一个难题,我想分享一下,以便其他人可以比我更快地解决它。

当尝试使用任何使用了 Net::SSH 的 Ruby gem 时,具体错误是 uninitialized constant OpenSSL::Digest::DSS。在我的例子中,Net::SFTP gem 不会连接到任何服务器。

起初我试过 bundle update net-ssh,但没有解决问题。

然后我决定这可能是一个 Ruby 问题并且 openssl 没有正确链接。

我花了一段时间才弄好,但最终以下方法奏效了:

rvm reinstall 2.4.2 --with-openssl-dir="$(brew --prefix openssl)"

重新安装需要一些时间,因为 rvm 会 运行 rvm pristine,但完成后只需再次 运行 bundle install,您就可以开始了.

要验证,只需通过 irbrails console 打开您的控制台并输入:

OpenSSL::Digest::DSS

完成后该模块应该存在。