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

Aje*_*i32 5 rubygems

我公司的公司代理似乎干扰了与httpsrubygems.org(但不是http连接)的连接,当我尝试从默认的gem源https://rubygems.org安装gem时导致失败.出于这个原因,我正在尝试更新我的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]
Run Code Online (Sandbox Code Playgroud)

但是,从自动脚本运行此命令时,似乎没有办法绕过此提示.该gem命令没有--yes--force选项(据我所知),并尝试使用该yes实用程序通过提示只会导致以下错误消息:

$ yes | gem sources --add http://rubygems.org
ERROR:  While executing gem ... (Gem::OperationNotSupportedError)
    Not connected to a tty and no default specified
Run Code Online (Sandbox Code Playgroud)

如何通过警告消息以编程方式添加http://rubygems.org作为源?

Dom*_*rne 7

要删除https来源:

gem sources -r https://rubygems.org/
Run Code Online (Sandbox Code Playgroud)

如果你把以下内容放在〜/ .gemrc中,它会在gem env中找到它

---
:backtrace: false
:bulk_threshold: 1000
:sources: ["http://rubygems.org"]
:update_sources: true
:verbose: true
Run Code Online (Sandbox Code Playgroud)

gem env片段:

 - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :backtrace => false
    - :bulk_threshold => 1000
    - :sources => ["http://rubygems.org"]
 - REMOTE SOURCES:
    - http://rubygems.org
Run Code Online (Sandbox Code Playgroud)