如何以编程方式将http://rubygems.org添加为宝石源?

时间:2016-03-16 17:26:56

标签: rubygems

我公司的公司代理似乎在干扰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作为来源?

1 个答案:

答案 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