如何在供应商/宝石中可靠地使用github中的代码?

时间:2011-09-30 15:14:17

标签: ruby-on-rails rubygems github

我喜欢尽可能多地提供宝石,除了那些必须在每个平台上构建的宝石(libxml等),但有时我喜欢使用一些前沿代码而不是宝石上的宝石服务器

我可以直接将github gem克隆到vendor / gems中吗?我想我可以,但它会影响我的应用程序代码,因为它已经是一个git存储库了吗?我想对这些宝石做周期性的git拉动,这样我就不必更新每个宝石,也许还有一些东西。

1 个答案:

答案 0 :(得分:6)

不推荐使用vendor/gems,而是使用BundlerGemfile。供应商系统存在许多缺陷,包括缺乏对已编译扩展的支持,因此它从来都不是一个完整的解决方案。

最好根据需要在Gemfile中锁定您的版本。如果您想使用前沿版本,请注释掉版本声明,删除Gemfile.lock并再次执行bundle install

通常情况下,宝石的已发布版本有一个需要通过分叉和修复来修复的缺陷,因此很容易跟踪:

gem 'broken-gem', :git => 'git://github.com/myname/broken-gem.git'

这里的优点是Gemfile可以作为您需要的宝石版本以及获取宝石的位置的文档。 vendor/gems让人们不知道该版本的来源。