【问题标题】:Ruby gem dependencies on offline serverRuby gem 对离线服务器的依赖
【发布时间】:2012-07-02 17:21:46
【问题描述】:

我的服务器与 Internet 完全断开(出于某些奇怪的安全原因)。

如何使各种 gem 的 Ruby 依赖项在该环境中工作?它可能适用于 Bundler,但如何在没有 Internet 连接的情况下使用 gem 安装 Bundler?

【问题讨论】:

  • 您可以从.gem 文件安装捆绑程序。转到rubygems,点击“下载”按钮,然后执行gem install bundler-1.1.4.gem。然后您可以使用bundler package 将所有必要的gem 打包到您应用程序的vendor/cache 目录中,以便您可以将它们与应用程序一起部署到您的服务器。
  • 谢谢!我马上试试。 Ruby 会自动找到 vendor/cache 中的所有 gem,还是我需要指定某个加载路径?
  • 根据docs,如果您在服务器捆绑器上的应用程序目录中执行bundle install --local,则只会在vendor/cache 中查找gem。
  • 好的,谢谢。但我的意思是在运行它时。 `require' 中的 ruby someprogram.rb:无法加载此类文件 -- trollop (LoadError)
  • @KL-7 请创建一个答案,以便我们将其标记为完成 =)

标签: ruby gem bundler offline


【解决方案1】:

您可以从 ruby​​gems 下载 bundler 作为 .gem 文件并将其安装在服务器上

gem install /path/to/bundler.gem

然后您可以将应用程序所需的所有 gem 打包到 ./vendor/cache 目录中

bundle package

如果现在您将应用(连同./vendor/cache 目录)部署到服务器并运行

bundle install --local

bundler 不会转到 ruby​​gems,而是会安装 ./vendor/cache 目录中的所有 gem。

请参阅bundler-packagedocs 了解更多信息。

【讨论】:

  • 第一步gem fetch bundler
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 2016-03-06
  • 1970-01-01
  • 2011-04-06
相关资源
最近更新 更多