指定gem版本或始终使用最新版本?

时间:2012-04-23 12:34:31

标签: ruby-on-rails ruby gem

我在业余时间编写了一个RoR webapp。像任何人一样(我猜),我使用宝石(大约20个)。

有几次,我在生产环境中部署应用程序时遇到了错误,因为我没有为我的所有宝石指定确切的版本,因此其中一些更新导致了错误。

我担心保留所有宝石的特定版本,当我需要更新其中一个(或部分)时,整个事情就会崩溃(我在制作宝石时遇到了问题) fly-sphinx和twitter在更新后一起工作。)

我的问题是:兼职编码器应该一劳永逸地修复使用的宝石版本,还是值得花时间检查每次更新?你如何管理你的Gemfile?

另外我认为,当你是全职的时候,你应该始终保持最新状态(安全,表现),但这是真的吗?

1 个答案:

答案 0 :(得分:5)

我主要坚持使用这种版本规范:

gem "blah", "~> 1.4.2"

表示版本号>= 1.4.2,但< 1.5.0

大多数宝石遵循语义版本控制方案,或者至少在进行版本跳转时只会破坏内容。这样,我“安全”,但仍然得到好的部分(错误修复等)。

锁定确切的版本号是Gemfile.lock背后的想法,所以我也将其检查为版本控制。到目前为止,这种方法对我来说非常有效,我从来没有遇到过这种方法的问题。