首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bundler找不到gem“bundler”的兼容版本:

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

Stack Overflow用户
提问于 2012-03-25 02:14:32
回答 7查看 52K关注 0票数 28

在这里完成Ruby和Rails的新用户。我在过去尝试过一些教程,但仅此而已。我正在尝试阅读“Ruby on Rails 3教程”这本书,但是遇到了一个障碍,在这里和Google上搜索后,我找不到任何帮助。

我实际上还没有做任何事情;只是:

代码语言:javascript
运行
复制
rails new first_app

然后将Gemfile sqlite3更改为

代码语言:javascript
运行
复制
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'

当我运行'bundle install‘时,我得到了以下信息:

代码语言:javascript
运行
复制
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`?

我已经尝试通过以下方式卸载bundler

代码语言:javascript
运行
复制
gem uninstall bundler -v 1.1.3

然后安装bundler v1.0.0,通过

代码语言:javascript
运行
复制
gem install bundler -v 1.0.0

但它似乎让我得到了bundler 1.1.2..

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

任何帮助都会受到极大的感谢,并会得到大量的培根……

更新更新更新

我无法卸载bundler v1.1.2。我终于能够通过执行以下操作卸载所有的gem:

代码语言:javascript
运行
复制
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

然后重新安装...这使我可以进行“包安装”,并进入正轨。感谢大家的帮助!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-03-25 02:28:21

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

代码语言:javascript
运行
复制
$ 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,你可以从https://www.ruby-lang.org下载或者使用ruby-build这样的工具。如果您有Ruby 1.9.3的任何版本,那么现在就可以了。

要更新所有gem,请执行以下操作:

代码语言:javascript
运行
复制
gem update --system
gem update

Gem可能会将Gem安装在几个不同的位置,这些位置可能会相互干扰。有系统gem(通常由root或使用sudo安装)和您的个人用户gem。我最喜欢的管理方式是使用一个名为rbenv的简单工具。一个相关的工具是rvm。任何一个都可以。

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

代码语言:javascript
运行
复制
- gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
+ gem 'sqlite3-ruby', :require => 'sqlite3'

Bundler会以正确的方式解决所有问题。最终,如果您正在与其他开发人员协作或构建生产系统,您将需要指定版本号。

你可以在这里提问,我会补充这个答案。

票数 11
EN

Stack Overflow用户

发布于 2013-07-10 17:54:56

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

代码语言:javascript
运行
复制
rvm @global do gem uninstall bundler

但您也可以使用其他版本的bundler,如下所示:

代码语言:javascript
运行
复制
gem install bundler -v '~>1.0.0'
bundle _1.0.0_ install

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

票数 20
EN

Stack Overflow用户

发布于 2012-03-25 02:22:41

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

使用

代码语言:javascript
运行
复制
gem list bundler

检查您已安装的bundler的版本。

然后删除那些你不想要的

代码语言:javascript
运行
复制
gem uninstall bundler -v VERSION_NUMBER
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9854225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档