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

AKW*_*KWF 1 rubygems ruby-on-rails github

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

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

tad*_*man 6

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

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

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

gem 'broken-gem', :git => 'git://github.com/myname/broken-gem.git'
Run Code Online (Sandbox Code Playgroud)

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

  • 也可能是`bundle package`命令:http://gembundler.com/bundle_package.html (2认同)
  • 所有正确的注意事项:更新gem不要删除整个`Gemfile.lock`只运行`bundle update <gemname>`.通过这种方式,您将只更新该gem及其依赖项,而将其他gem更新为以前的版本. (2认同)