Ruby on rails 3 bundler如何知道要安装哪个版本的gem?

Ruby on rails 3 bundler如何知道要安装哪个版本的gem?,ruby-on-rails-3,rubygems,bundler,Ruby On Rails 3,Rubygems,Bundler,在我的rails3.1项目中,我一直在使用lessrails引导程序gem 我想升级到bootstrap的2.0wip版本,我在下面找到了一个同名的fork 这两个版本都说要安装,您需要将gem'lessrails引导程序'添加到gem文件中 那么,bundler如何知道使用哪一个呢?如果20个人有完全相同名字的宝石呢 我想更大的问题是如何指定要使用哪个gem?Bundler将使用在上找到的gem,即您发布的第一个链接上的gem 当尝试使用未发布的分支/分支时,您应该在Gemfile中传递:gi

在我的
rails3.1
项目中,我一直在使用
lessrails引导程序
gem

我想升级到bootstrap的2.0wip版本,我在下面找到了一个同名的fork

这两个版本都说要安装,您需要将
gem'lessrails引导程序'
添加到gem文件中

那么,bundler如何知道使用哪一个呢?如果20个人有完全相同名字的宝石呢


我想更大的问题是如何指定要使用哪个gem?

Bundler将使用在上找到的gem,即您发布的第一个链接上的gem

当尝试使用未发布的分支/分支时,您应该在
Gemfile
中传递
:git
选项,告诉Bundler使用该git存储库:

gem 'less-rails-bootstrap', :git => "git://github.com/sgruhier/less-rails-bootstrap.git"

啊。这是有道理的。但是如果rubygems上有两个呢?使用:git,我可以看到精确指定我想要的宝石是多么容易,但是如果Rubygems上有多个宝石,那么这是如何工作的呢?Rubygems上不能有两个同名的宝石。如果2.0wip版本的作者试图发布他的gem,他将不得不对其进行重命名(他可能会将其命名为sgruhier-less-rails bootstrap或其他名称)。通常应该发生的是,fork的作者让原始作者将其更改合并到“官方”gem中。你是说我把整个交易搞得太复杂了?哈哈,好吧,我明白了。所以基本上是先到先得。谢谢。这里有一个例子()--有一个官方的“raspell”gem,然后我发布了“dmarkow raspell”,在正式版本之前添加了Ruby 1.9支持。