指定依赖的gem版本

时间:2012-11-12 17:41:59

标签: ruby-on-rails gem

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

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

1 个答案:

答案 0 :(得分:2)

只需在您的Gemspec中声明您依赖"delayed_job", "3.0.3"。如果可能的话,Bundler将找出满足所有要求的一组依赖项。如果delayed_job_active_record取决于delayed_job版本3或更高版本(比如说),并且您具体依赖于3.0.3,那么Bundler将会发现版本3.0.3足以满足这两个要求。< / p>

此外,您应该能够将适当版本的宝石与您的应用程序捆绑在一起。 Bundler的一个要点是允许你这样做;将您所依赖的所有宝石收集到您的应用程序中,这样您就不会受到主机上安装的内容的影响。您运行bundle install --deployment,它会将您的所有宝石复制到vendor/bundle目录中。有关详细信息,请参阅deploying with Bundler上的文档。