繁体   English   中英

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

[英]Bundler could not find compatible versions for gem "bundler":

在这里完成 Ruby 和 Rails 的新人......过去尝试过一些教程,但仅此而已。 我正在尝试遵循“Ruby on Rails 3 教程”一书,但遇到了一个障碍,在此处和 Google 上搜索后我无法找到任何帮助。.

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

rails new first_app

然后将 Gemfile sqlite3 更改为

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

当我运行“捆绑安装”时,我得到以下信息:

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

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

我只是觉得我已经走到了死胡同,找不到有关如何解决此问题的更多信息。

任何帮助将不胜感激,并会得到大量的培根……

更新更新更新

我无法卸载 bundler v 1.1.2。 我终于能够通过执行以下操作卸载所有宝石:

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

然后重新安装...这让我可以进行“捆绑安装”并步入正轨..谢谢大家的帮助!

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

rvm @global do gem uninstall bundler

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

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

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

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

$ 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 update --system
gem update

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

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

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

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

随意在这里提问,我将添加到这个答案。

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

使用

gem list bundler

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

然后删除你不想要的那些

gem uninstall bundler -v VERSION_NUMBER

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

我遇到了这个问题,来源是bundler文件中捆绑.gemspec的版本规范:

spec.add_development_dependency "bundler", "~> 1.16"

删除版本号解决了这个问题:

spec.add_development_dependency "bundler"

有时为了解决这个问题标题中提到的问题,删除Gemfile.lock并运行bundle update就足够了。 我希望它会对某人有所帮助。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM