我公司的公司代理似乎在干扰https
与rubygems.org(但不是http
连接)的连接,当我尝试从默认的gem源安装gems时导致失败,{ {3}}。出于这个原因,我正在尝试更新我的gem源以使用不安全的http
版本的rubygems.org替换默认源。 (是的,我知道这会带来安全隐患。)
当我从命令行手动执行此操作时,一切正常;我只需要通过一条警告信息:
$ gem sources --add http://rubygems.org
https://rubygems.org is recommended for security over http://rubygems.org
Do you want to add this insecure source? [yn]
但是,从自动脚本运行此命令时似乎没有办法绕过此提示。 gem
命令没有--yes
或--force
选项(据我所知),并尝试使用https://rubygems.org实用程序来超越提示只会导致以下错误消息:
$ yes | gem sources --add http://rubygems.org
ERROR: While executing gem ... (Gem::OperationNotSupportedError)
Not connected to a tty and no default specified
如何通过警告消息以编程方式添加yes
作为来源?
答案 0 :(得分:7)
删除https来源:
gem sources -r https://rubygems.org/
如果你把以下内容放在〜/ .gemrc 中,它会在gem env中找到它
---
:backtrace: false
:bulk_threshold: 1000
:sources: ["http://rubygems.org"]
:update_sources: true
:verbose: true
gem env片段:
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://rubygems.org"]
- REMOTE SOURCES:
- http://rubygems.org