在Rails 2.x中,“rake gems:unpack”和“rake gems:freeze”有什么区别?

时间:2010-10-20 02:14:05

标签: ruby-on-rails rubygems rake

似乎两种方法都可以将gem冻结到vendor目录中,但是rake gems:unpack要求将gem列出 在config/environment.rb完成之前config.gem '<name of the gem>' rake

另一方面,rake gems:freeze需要先安装gem gemsonrails,并使用语法rake gems:freeze GEM=haml并且 不需要先在environment.rb列出宝石。但它不适用于当前的GEM类(可能需要gem 1.3.6而不是1.3.7)。

除此之外,它们之间有什么区别?他们的工作方式非常相似并达到了同样的目的吗? gemsonrails的网页自2007年以来未更新;是rake gems:unpack 如果不使用Bundler,更优选冻结宝石的方法?

1 个答案:

答案 0 :(得分:0)

我一直在与config.gem和解压缩的宝石争吵很长时间,但从未真正使用过rake gems:freeze。

原因是我从未试图让所有宝石解包/冻结(我相信这是同一件事),只有那些在rake gem期间引起问题的那些:通过将循环依赖与环境一起引入安装过程。

所以我无法完全回答你的问题 - 但我建议改用bundler。我已经将它与Rails 2.3.1一起使用了,并且从未回头看过gems:install系统(bundler也有或者遇到了一些问题,但从来没有处于同样的噩梦级别)。