Ruby on rails 如何在供应商/gems中可靠地使用来自github的代码?

Ruby on rails 如何在供应商/gems中可靠地使用来自github的代码?,ruby-on-rails,rubygems,github,Ruby On Rails,Rubygems,Github,我喜欢提供尽可能多的gem,除了那些必须在每个平台上构建的gem(libxml等),但有时我喜欢使用一些前沿代码,而不是gem服务器上的gem 我可以将github gem直接克隆到供应商/gems中吗。我想我可以,但它是否会影响我的应用程序代码,因为它已经是git存储库了?我只想对这两个gem定期执行git拉取,这样我就不必更新每一个gem,也不必破坏某些东西。使用供应商/gems已被弃用,而使用和Gemfile。供应商系统有许多缺陷,包括缺乏对编译扩展的支持,因此它从来都不是一个完整的解决方

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


我可以将github gem直接克隆到供应商/gems中吗。我想我可以,但它是否会影响我的应用程序代码,因为它已经是git存储库了?我只想对这两个gem定期执行git拉取,这样我就不必更新每一个gem,也不必破坏某些东西。

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

您最好根据需要在GEM文件中锁定您的版本。如果要使用最新版本,请注释掉版本声明,删除
Gemfile.lock
,然后再次执行
捆绑安装

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

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

这里的优点是
Gemfile
可以作为您需要的gems版本以及从何处获取它们的文档
vendor/gems
让人们对该版本的来源一无所知。

使用
vendor/gems
已被弃用,取而代之的是使用和
Gemfile
。供应商系统有许多缺陷,包括缺乏对编译扩展的支持,因此它从来都不是一个完整的解决方案

您最好根据需要在GEM文件中锁定您的版本。如果要使用最新版本,请注释掉版本声明,删除
Gemfile.lock
,然后再次执行
捆绑安装

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

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

这里的优点是
Gemfile
可以作为您需要的gems版本以及从何处获取它们的文档
vendor/gems
让人们对该版本的来源一无所知。

可能还有相关的
捆绑包
命令:请注意:要更新gem,请不要删除整个
Gemfile.lock
只需运行
捆绑包更新
。通过这种方式,您将只更新该gem及其依赖项,而将其他gem固定到以前的版本。可能相关的还有
捆绑包
命令:请注意:要更新gem,请不要删除整个
gem文件。锁定
只需运行
捆绑包更新
。通过这种方式,您将只更新gem及其依赖项,而其他gem将固定到以前的版本。