似乎两种方法都可以将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,更优选冻结宝石的方法?
答案 0 :(得分:0)
我一直在与config.gem和解压缩的宝石争吵很长时间,但从未真正使用过rake gems:freeze。
原因是我从未试图让所有宝石解包/冻结(我相信这是同一件事),只有那些在rake gem期间引起问题的那些:通过将循环依赖与环境一起引入安装过程。
所以我无法完全回答你的问题 - 但我建议改用bundler。我已经将它与Rails 2.3.1一起使用了,并且从未回头看过gems:install系统(bundler也有或者遇到了一些问题,但从来没有处于同样的噩梦级别)。