最佳实践,为gemfile中的每个gem添加一个版本?

时间:2012-07-06 06:14:45

标签: ruby-on-rails gemfile

我应该在Gemfile中为每个gem添加版本吗?这是最佳做法吗?刚刚推荐?

3 个答案:

答案 0 :(得分:5)

我更喜欢将所有宝石锁定到生产中的特定版本。考虑到可能有更新版本破坏与其他gem的兼容性或弃用某些API,您希望100%确保在部署时不会因为gem不一致而使应用程序崩溃。更新gems只应在开发中本地完成,方法是更新Gemfile条目并针对其余代码和库测试每个新版本。

答案 1 :(得分:2)

通常情况下,除非被指示这样做,否则您不需要(由宝石作者或由于不兼容性而引起的用户反馈)。偶尔你可能会使用某些宝石的边缘版本,所以无论如何它都无关紧要:

# Bundle edge Rails instead:
gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'arel',  :git => 'git://github.com/rails/arel.git'
gem "rack", :git => "git://github.com/rack/rack.git"

答案 2 :(得分:1)

我认为你不应该指定每个gem的版本,因为已经在Gemfile.lock指定了当前工作宝石的版本。

此外,如果您这样做,bundle update命令将毫无用处。您应该能够使用此命令更新gem。如果测试通过并且您的应用程序继续正常工作,则只需提交新的Gemfile.lock