簡體   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