Bundler找不到gem“bundler”的兼容版本:

在这里完成Ruby和Rails的新人…过去曾尝试过一些教程,但那是关于它的。 我正在尝试遵循“Ruby on Rails 3 Tutorial”一书,并找到了一个障碍,在搜索到Google和Google之后我找不到任何帮助。

我还没有做过任何事情; 只要:

rails new first_app 

然后将Gemfile sqlite3更改为

 gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 

当我运行’bundle install’时,我得到以下内容:

 Fetching gem metadata from http://rubygems.org/......... Bundler could not find compatible versions for gem "bundler": In Gemfile: rails (= 3.0.1) ruby depends on bundler (~> 1.0.0) ruby Current Bundler version: bundler (1.1.3) This Gemfile requires a different version of Bundler. Perhaps you need to update Bundler by running `gem install bundler`? 

我试过通过卸载捆绑包

 gem uninstall bundler -v 1.1.3 

然后通过安装bundler v1.0.0

 gem install bundler -v 1.0.0 

但它似乎让我捆绑1.1.2 ..

我只是觉得自己走到了死胡同,无法找到更多关于如何解决这个问题的信息。

任何帮助都将受到极大的赞赏和奖励大量的培根……

更新更新更新

我无法使用bundler v 1.1.2进行卸载。 我终于通过这样做卸载了所有的gem:

 sudo gem list | cut -d" " -f1 > gem_list.txt cat gem_list.txt | xargs sudo gem uninstall -aIx cat gem_list.txt | xargs sudo gem install 

然后重新安装…这使我可以进行’捆绑安装’并开始运行..谢谢大家的帮助!

首先validation您的版本以确保它们都是最新的:

 $ ruby -v ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux] $ rails -v Rails 3.2.2 $ gem list bundler *** LOCAL GEMS *** bundler (1.1.3) 

如果您需要更新ruby,可以从ruby-lang.org下载或使用ruby-build等工具。 如果你有任何版本的Ruby 1.9.3现在都可以。

要更新所有gem:

 gem update --system gem update 

gem可能会在几个不同的地方安装gem,这些gem会相互干扰。 有系统gem(通常由root或使用sudo安装)和您的个人用户gem。 我最喜欢的管理方法是使用一个名为rb-evn的简单工具。 一个相关的工具是rvm。 要么没事。

对于您的第一个教程,您可以跳过Gemfile中的版本号:

 - gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' + gem 'sqlite3-ruby', :require => 'sqlite3' 

Bundler将以正确的方式排序所有内容。 最终,如果您正在与其他开发人员协调或构建生产系统,则需要指定版本号。

随意在这里提问,我会补充这个答案。

您可以使用最新版本的Rails 3.0(3.0.12)。 它支持最新的捆绑包,并没有从根本上与3.0.1不同

这是因为gems也安装在全局gemset中,您可以使用以下命令卸载它:

 rvm @global do gem uninstall bundler 

但您也可以使用其他版本的bundler:

 gem install bundler -v '~>1.0.0' bundle _1.0.0_ install 

将1.0.0替换为已安装的版本(如果是其他)

也许您的机器上安装了bundler 1.1.2 AND 1.1.3(可能还有更多版本)

使用

 gem list bundler 

检查您安装的捆绑包的版本。

然后删除你不想要的那些

 gem uninstall bundler -v VERSION_NUMBER 

Bundler是rails的依赖gem,因为你只能在gemfile.lock而不是gemfile看到它。

对于特定的轨道版本,只有一系列捆绑器gem兼容。 我也遇到了这个错误,我尝试卸载我不需要的那个版本的bundler gem。 我还尝试使用bundle_x.x.x_installpowershell安装,但是当事情不起作用时,我明确提到了gem指定版本在我正在使用的rails版本所需的范围内。 可能它不是正确的方式,但这就是事情对我有用的方式。