如果 bundle install 下载了 gem,随后在一个 Git 依赖处停下,就检查该依赖的来源。下载成功只能证明那些下载所用的路由。

  1. 阅读 Gemfile 或 lockfile 中实际的 Git URL。 HTTPS、SSH 和 git:// 需要不同的连接。历史上的 Bundler 简写可能在一个简短声明中隐藏 git:// URL。
  2. 检查构建所使用的 Git 调用。 将其实际配置、环境和账号与一个可用的终端调用进行比较。构建代理或特权命令可能看到不同的输入。
  3. 遵循所选的传输方式。 对于已获授权的 HTTPS 源,原生 Git 的受支持的 HTTP 代理配置可以适用。对于 SSH,使用组织支持的 SSH 路由。HTTP 代理设置并不能配置 Bundler 可能启动的每一种传输方式。

对于允许公共中间人的公共 HTTPS Git 源,HTTP 代理列表为该 Git 配置提供候选端点。

现在对错误进行分类。407 涉及对中间人的访问。隧道成功之后私有仓库的权限错误涉及它单独的账号或密钥。不要把代理凭据写入 Gemfile 和已提交的源 URL;这些声明会与网络设置可能不同的项目用户共享。

不要仅仅因为一个不相关的变通方案建议,就替换可用的代理或修改带域名的账号。完成意味着通过预期路由获取那个特定的 Git 源。重复已经成功的 gem 下载会让该失败得不到检验。

相关文章