如何告诉gem命令不要使用SSL

Omi*_*gar 29 ruby ssl gem rubygems

我试图运行gem命令来安装/更新一些宝石,但由于此区域的一些网络限制,我收到此错误:

ERROR:  While executing gem ... (OpenSSL::SSL::SSLError)
    SSL_connect returned=6 errno=0 state=SSLv3 read finished A
Run Code Online (Sandbox Code Playgroud)

(我认为)这主要是因为篡改了SSL证书.
反正告诉gem不要使用SSL,以避免错误?

Leo*_*cci 57

如果您无法解决证书问题,请使用HTTP而不是HTTPS:

$ gem install rails --source http://rubygems.org
Run Code Online (Sandbox Code Playgroud)

为避免每次都重复此操作,请~/.gemrc通过命令行编辑或编辑文件,如下所示:

$ gem sources --add http://rubygems.org
$ gem sources --remove https://rubygems.org
$ gem sources --list

*** CURRENT SOURCES ***
http://rubygems.org
Run Code Online (Sandbox Code Playgroud)

此外,Gemfile您需要更改第一行:

source 'https://rubygems.org'
Run Code Online (Sandbox Code Playgroud)

至:

source 'http://rubygems.org'
Run Code Online (Sandbox Code Playgroud)

当然,如果你设法解决这个certs问题会更好,就像@ p11y在他的评论中所建议的那样.

  • 注意:如果收到错误`source https://rubygems.org在缓存中不存在`,则需要在URL末尾添加一个正斜杠,以便使用:`$ gem sources --remove https:// rubygems.org /` (2认同)

Jer*_*odG 21

接受的答案对我不起作用。然而,以下做到了。

编辑 .gemrc 文件

  • 在 Windows 上 c:\Users\yourusername\.gemrc

如果您的路径不同,特别是 %HOMEPATH% 。

添加:

:ssl_verify_mode: 0
Run Code Online (Sandbox Code Playgroud)

它显示 SSL 错误,但安装成功。