离线安装 RubyGems 需要完整的依赖集合
区分只有一个本地 gem 归档与在代理背后完成离线安装所需的一切。
浏览器下载的 .gem 可以绕过最初的代理问题,却不能让安装自给自足。在把归档移到目标机器之前,请准备:
- 每个缺失的已声明依赖的合适版本。
- 与目标 Ruby、RubyGems 和平台兼容的归档。
- 任何原生扩展所需的编译器、头文件和系统库。
明确要求 RubyGems 进行本地安装:
gem install ./example-1.2.3.gem --local
替换示例文件名。通过已批准的制品流程解决缺失材料,而不是停用依赖检查。另一台机器上的平台构建未必能仅因名称和版本相同就可用。
本地模式涉及 RubyGems 的获取行为。扩展构建脚本可能做别的工作,因此它不是任意安装代码的沙箱。扩展失败可能表明归档已经到达后仍缺少构建前提;应把该阶段与代理拒绝分开报告。
对于重复部署,应通过项目正常的打包工作流维护依赖集合。否则依赖版本或架构的变化可能让下一次临时浏览器下载变成另一种安装。