当我在Centos 5.5上为我的Rails 3项目运行捆绑安装时,它失败了,出现了一个错误:

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 
read server certificate B: certificate verify failed 
(https://bb-m.rubygems.org/gems/multi_json-1.3.2.gem)
An error occured while installing multi_json (1.3.2), and Bundler cannot continue.
Make sure that `gem install multi_json -v '1.3.2'` succeeds before bundling.

当我尝试手动安装gem(通过gem install multi_json -v '1.3.2')它工作。同样的问题也发生在其他宝石上。我使用RVM (1.12.3), ruby 1.9.2, bundle 1.1.3。

如何解决?


当前回答

对于Windows机器,检查您的gem版本

gem --version

然后更新你的宝石如下:

1.8运行。X:下载1.8.30 2.0运行。X:下载2.0.15 2.2运行。X:下载2.2.3

请将该文件下载到您稍后可以指向的目录中(例如。你的硬盘的根目录C:)

现在,使用命令提示符:

C:\>gem install --local C:\rubygems-update-1.8.30.gem
C:\>update_rubygems --no-ri --no-rdoc

现在,bundle安装将成功,没有SSL证书验证错误。

更详细的说明在这里

其他回答

同样的问题,但不同的宝石:

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 
read server certificate B: certificate verify failed 
(https://bb-m.rubygems.org/gems/builder-3.0.0.gem)
An error occured while installing builder (3.0.0), and Bundler cannot continue.
Make sure that `gem install builder -v '3.0.0'` succeeds before bundling.

临时解决方案:gem install builder -v '3.0.0'使继续包安装成为可能

谢谢@亚历山大。Iljushkin:

Gem更新——system——source http://rubygems.org/

在那之后,捆绑器仍然失败了,解决方案是:

Gem安装捆绑器

需要注意的是,如果您正在从一个SSL证书受内部证书颁发机构信任的源获取宝石(或者您正在通过带有SSL检查的公司web代理连接到一个外部源),请将SSL_CERT_FILE env变量指向您的证书链。这很可能只需要将您的根证书从证书存储(macOS上的系统密钥链)导出到您的shell中可访问的位置,即:

export SSL_CERT_FILE=~/RootCert.pem

下载rubygems-update-2.6.7。宝石。

现在,使用命令提示符:

C:\>gem install --local C:\rubygems-update-2.6.7.gem
C:\>update_rubygems --no-ri --no-rdoc

在此之后,gem——version应该报告新的更新版本。

您现在可以安全地卸载rubygems-update gem:

C:\>gem uninstall rubygems-update -x
Removing update_rubygems
Successfully uninstalled rubygems-update-2.6.7

这招对我很管用:

在https://rubygems.org/pages/download下载最新的gem 使用gem Install——local[下载gem文件的路径]安装gem 使用update_rubygems更新宝石 使用gem——version检查您使用的是最新的gem版本