Ruby 使用了错误版本的 openssl
Ruby using wrong version of openssl
$ brew install openssl
Warning: openssl-1.0.2a-1 already installed
$ openssl version
OpenSSL 0.9.8zd 8 Jan 2015
$ ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.1j 15 Oct 2014
$ rvm -v
rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
我发现 openssl 版本之间存在很多差异。 Homebrew 认为它在 1.0.2a-1
上,openssl 本身认为它在 0.9.8zd
上,而 Ruby 认为它在 1.0.1j
上。我什至不知道这些是否真的是最新的!
如何解决这个差异并让 Ruby 使用正确版本的 OpenSSL?它使用错误版本的事实使我无法使用安全 API。
使用 HomeBrew 安装 OpenSSL 不会立即link它作为默认 OpenSSL。
首先,让我们检查一下您使用的是哪个版本(2015 年 7 月 10 日最新版本是 1.0.2d):
openssl version -a
which openssl
ruby -r openssl -e 'puts OpenSSL::OPENSSL_VERSION'
现在,请确保将 OpenSSL 升级到最新版本:
brew update
brew install openssl
brew unlink openssl
brew link --force openssl
如果您再次 运行 初始检查,您应该会看到前 2 个指向新安装的 OpenSSL。 Ruby 很可能仍然指向旧的,因为它是用它编译的。
如果指向旧版本,让我们重新编译Ruby并指向新版本。为了确保它将使用正确的版本,让我们传递 OpenSSL 前缀——尽管这并不需要,因为我们link编辑了自制软件的 OpenSSL。
rvm get stable
rvm install ruby-2.1.6 --with-openssl-dir=`brew --prefix openssl`
(或 rvm reinstall
如果您已经在使用 2.1.6)
这应该可以做到。
$ brew install openssl
Warning: openssl-1.0.2a-1 already installed
$ openssl version
OpenSSL 0.9.8zd 8 Jan 2015
$ ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.1j 15 Oct 2014
$ rvm -v
rvm 1.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
我发现 openssl 版本之间存在很多差异。 Homebrew 认为它在 1.0.2a-1
上,openssl 本身认为它在 0.9.8zd
上,而 Ruby 认为它在 1.0.1j
上。我什至不知道这些是否真的是最新的!
如何解决这个差异并让 Ruby 使用正确版本的 OpenSSL?它使用错误版本的事实使我无法使用安全 API。
使用 HomeBrew 安装 OpenSSL 不会立即link它作为默认 OpenSSL。
首先,让我们检查一下您使用的是哪个版本(2015 年 7 月 10 日最新版本是 1.0.2d):
openssl version -a
which openssl
ruby -r openssl -e 'puts OpenSSL::OPENSSL_VERSION'
现在,请确保将 OpenSSL 升级到最新版本:
brew update
brew install openssl
brew unlink openssl
brew link --force openssl
如果您再次 运行 初始检查,您应该会看到前 2 个指向新安装的 OpenSSL。 Ruby 很可能仍然指向旧的,因为它是用它编译的。
如果指向旧版本,让我们重新编译Ruby并指向新版本。为了确保它将使用正确的版本,让我们传递 OpenSSL 前缀——尽管这并不需要,因为我们link编辑了自制软件的 OpenSSL。
rvm get stable
rvm install ruby-2.1.6 --with-openssl-dir=`brew --prefix openssl`
(或 rvm reinstall
如果您已经在使用 2.1.6)
这应该可以做到。