我喜欢尽可能多地提供宝石,除了那些必须在每个平台上构建的宝石(libxml等),但有时我喜欢使用一些前沿代码而不是宝石上的宝石服务器
我可以直接将github gem克隆到vendor / gems中吗?我想我可以,但它会影响我的应用程序代码,因为它已经是一个git存储库了吗?我想对这些宝石做周期性的git拉动,这样我就不必更新每个宝石,也许还有一些东西。
答案 0 :(得分:6)
不推荐使用vendor/gems
,而是使用Bundler和Gemfile
。供应商系统存在许多缺陷,包括缺乏对已编译扩展的支持,因此它从来都不是一个完整的解决方案。
最好根据需要在Gemfile中锁定您的版本。如果您想使用前沿版本,请注释掉版本声明,删除Gemfile.lock
并再次执行bundle install
。
通常情况下,宝石的已发布版本有一个需要通过分叉和修复来修复的缺陷,因此很容易跟踪:
gem 'broken-gem', :git => 'git://github.com/myname/broken-gem.git'
这里的优点是Gemfile
可以作为您需要的宝石版本以及获取宝石的位置的文档。 vendor/gems
让人们不知道该版本的来源。