RubyGems 有自己的代理输入。使用公司代理的浏览器或 IDE 并不会设定 gem 命令所选择的端点。

单次获取:

gem fetch rake --http-proxy http://proxy.example:8080

把端点换成已获批准的服务。对于允许公共中转的公开 gem 下载,HTTP 代理列表 提供候选。此命令会下载指定的 gem。

重复执行的命令

RubyGems 记录了 HTTP_PROXY、HTTP_PROXY_USER 和 HTTP_PROXY_PASS 用于代理发现。请使用已安装版本支持的接口,以及你所在环境常规的凭据处理方式。

持久设置更改后,现有终端仍保留它们的环境;构建服务又可能有另一套环境。请检查运行失败命令的那个进程。

哪里失败了?

地址格式错误
检查 URI 方案、主机和端口。Shell 引号和 URI 编码解决的是不同问题。
认证挑战
检查所要求的方法和账户形式。域形式的用户名并不会添加 NTLM 或其他不受支持的机制。
证书失败
确定相关的证书和信任存储,并保持校验开启。

针对 Ruby 1.8 和早期 RubyGems 的说明可能描述不同的缺陷和命令行为。请使用已安装版本的接口,而不是围绕旧变通方案去修改它的实现。

gem 源指明软件包的发布位置;正向代理指明通往该源的路由。请更改对失败环节负责的那项设置。

相关文章