0

由于服务器限制,我无权在生产环境中安装特定的 gem 版本。

在开发过程中,我安装了delayed_job_active_record (0.3.3),它依赖于delayed_job,bundler 使用最新版本3.0.4。不幸的是,在生产中只安装了 v. 3.0.3。因此我手动编辑了 gemfile.lock 。它现在可以用于生产,但我认为,这绝对不是正确的做法。那么,如何指定依赖 gem 的版本呢?

4

1 回答 1

2

只需在您的 Gemspec 中声明您所依赖的"delayed_job", "3.0.3". 如果可能,Bundler 将找出一组满足所有要求的依赖项。如果delayed_job_active_record依赖于delayed_job版本 3 或更高版本(例如),并且您特别依赖于 3.0.3,那么 Bundler 会发现版本 3.0.3 足以满足这两个要求。

此外,您应该能够将适当版本的 gem 与您的应用程序捆绑在一起。Bundler 的要点之一是允许您这样做;将您依赖的所有 gem 收集到您的应用程序中,这样您就不会受到主机上安装的任何东西的摆布。你运行bundle install --deployment,它会将你所有的 gem 复制到vendor/bundle目录中。有关详细信息,请参阅使用 Bundler 进行部署的文档。

于 2012-11-12T17:45:49.453 回答