Ruby使用了错误版本的openssl
发布时间:2020-12-17 04:14:11 所属栏目:百科 来源:网络整理
导读:$brew install opensslWarning: openssl-1.0.2a-1 already installed $openssl versionOpenSSL 0.9.8zd 8 Jan 2015 $ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'OpenSSL 1.0.1j 15 Oct 2014 $rvm -vrvm 1.26.11 (latest) by Wayne E. Seguin waynees
$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不会立即将其作为默认的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 如果再次运行初始检查,您应该看到前两个指向新安装的OpenSSL. Ruby很可能仍然指向旧的,因为它是用它编译的. 如果它指向旧版本,让我们重新编译Ruby并将其指向新版本.为了确保它将使用正确的版本,让我们传递OpenSSL前缀 – 尽管我们连接自制软件的OpenSSL后不应该这样做. rvm get stable rvm install ruby-2.1.6 --with-openssl-dir=`brew --prefix openssl` (如果你已经在使用2.1.6,则重新安装rvm) 这应该做到这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |