【问题标题】:Can't run Ruby 2.2.3 with RVM on OSX无法在 OSX 上使用 RVM 运行 Ruby 2.2.3
【发布时间】:2015-11-28 00:09:45
【问题描述】:

我有两台 MacBook(一台在 Mavericks,另一台在 Yosemite),两者都发生了同样的事情。 使用 RVM 安装 Ruby 2.2.3 后,出现以下错误:

.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Faraday::SSLError)

我已尝试在线搜索解决方案,但似乎没有任何效果。大多数遇到此问题的人都在运行 Windows 机器。

$ rvm osx-ssl-certs status all
Certificates for /usr/local/etc/openssl/cert.pem: Up to date.
Certificates for /etc/openssl/cert.pem: Up to date.

切换回 2.2.2 可以正常工作。有什么想法吗?

【问题讨论】:

标签: ruby macos openssl rvm


【解决方案1】:

除了在 El Capitan 上使用 brew install openssl 之外,我无能为力。我已经尝试了所有方法,例如使用 RVM 更新证书、从 haxx.se 替换 SSL 证书或重新安装 ruby​​。没有其他工作。

【讨论】:

    【解决方案2】:

    下载http://curl.haxx.se/ca/cacert.pem并添加

    export SSL_CERT_FILE=PATH_TO_THe_DOWNLOADED_FILE/cacert.pem
    

    到 .bash_profile/.zshrc 部分解决了这个问题,因为它在我的系统上引发了以下错误:

    Excon::Errors::SocketError: Unable to verify certificate, please set `Excon.defaults[:ssl_ca_path] = path_to_certs`, `ENV['SSL_CERT_DIR'] = path_to_certs`, `Excon.defaults[:ssl_ca_file] = path_to_file`, `ENV['SSL_CERT_FILE'] = path_to_file`, `Excon.defaults[:ssl_verify_callback] = callback` (see OpenSSL::SSL::SSLContext#verify_callback), or `Excon.defaults[:ssl_verify_peer] = false` (less secure).
    

    在 Rails 初始化程序中将 Excon.defaults[:ssl_verify_peer] 设置为 false(仅在开发/测试环境中)使其工作。

    更新:从源代码重新安装 2.2.3 解决了我所有的问题。

    rvm remove 2.2.3
    rvm install 2.2.3 --disable-binary
    

    【讨论】:

    • 同上重新安装和禁用二进制解决这些问题。
    • 为什么禁用二进制可以修复它?
    • @Taysky 禁用二进制工作的原因是 RVM 使用的二进制文件链接到 /etc/openssl 的证书目录和证书文件,这很可能不是大多数人所在的地方系统。您当然可以使用注明的环境变量设置路径。然而,有些人宁愿只手动编译 ruby​​ 并避免这种情况。
    • @geekbri - 好吧。谢谢!
    • 你就不能rvm reinstall 2.2.3 --disable-binary吗?不过,不知道这是否会 100% 奏效。
    猜你喜欢
    • 1970-01-01
    • 2015-12-30
    • 2012-04-03
    • 2011-10-11
    • 2013-03-16
    • 2014-12-15
    • 2012-08-15
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多