2012-03-24 122 views
11

在這裏完成Ruby和Rails的新人......過去曾嘗試過一些教程,但就是這樣。我試圖按照'Ruby on Rails 3 Tutorial'這本書,並且遇到了一個障礙,我沒有能夠找到任何幫助後搜索這裏和谷歌..Bundler無法找到兼容版本的寶石「bundler」:

我還沒有實際完成什麼都沒有;只有:

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 

然後安裝b通過

gem install bundler -v 1.0.0 

undler V1.0.0,但它似乎讓我打捆1.1.2 ..

我只是覺得我已經打了一個死衚衕,無法找到如何更多信息解決這個問題。

任何幫助將不勝感激,並用大量臘肉的獎勵......

更新的版本?

我不能讓打捆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 

並重新安裝...這讓我那麼做「包安裝」和正軌。謝謝大家的幫助!

+0

您正在使用RVM? – 2012-03-24 18:16:17

+2

當你做'gem list bundler'時它說了什麼?也許你已經安裝了1.0.0和1.1.2。 – 2012-03-24 18:19:59

+0

*** LOCAL GEMS *** bundler(1.1.3,1.1.2,1.0.0) – audioeric 2012-03-24 18:23:07

回答

5

首先確認您的版本,以確保他們的所有電流:

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

寶石可以在幾個不同的地方安裝的寶石,這些可以相互干擾。有系統寶石(通常由root或sudo安裝)和你的個人用戶寶石。我最喜歡的方式是使用一種名爲rb-evn的簡單工具。一個相關的工具是rvm。兩者都很好。

爲了您的第一個教程,你可以跳過你的Gemfile使用的版本號:

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

捆紮機將整理出一切正確的方式。最終,如果您正在與其他開發人員協調或構建生產系統,則需要指定版本號。

歡迎隨時提問,我會加入到這個答案。

+0

Ruby很好,我有1.9.3p125。 – audioeric 2012-03-24 18:42:12

+0

當我試圖做軌-v我得到它目前沒有安裝...有沒有辦法只卸載一切做一個全新的安裝? – audioeric 2012-03-24 18:43:35

+0

好吧,我通過 sudo的創業板名單卸載所有的寶石| cut -d「」-f1> gem_list.txt cat gem_list.txt | xargs sudo gem uninstall -aIx cat gem_list.txt | xargs的sudo的創業板安裝 這已經讓我做「捆綁安裝」 ......這解決了問題,現在...謝謝! – audioeric 2012-03-24 18:56:08

6

您可以使用最新版本的Rails 3.0(3.0.12)。它支持最新的捆綁,並沒有從根本上3.0.1

2

也許你有捆綁1.1.2和1.1.3安裝在計算機上的不同(也可能是多個版本)

使用

gem list bundler 

檢查您已安裝哪個版本的捆綁軟件。

然後刪除你不想要的那些與

gem uninstall bundler -v VERSION_NUMBER 
+1

我安裝了3個版本,1.0.0,1.1.2和1.1.3。我可以卸載1.0.0和1.1.3,但我無法卸載1.1.2。 如果我做寶石卸載捆綁,它說沒有安裝捆綁。但如果我做寶石列表打包器,它列出了1.1.2 ... – audioeric 2012-03-24 18:33:02

3

這是因爲寶石也被安裝在全球的寶石,你可以使用其卸載:

rvm @global do gem uninstall bundler 

,但你也可以使用捆綁的其他版本使用:

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

更換1.0 .0與已安裝的版本(如果有的話)

-1

Bundler是rails的依賴gem,因爲它只能在gemfile.lock而不是中看到它。

對於特定的軌道版本只是一個範圍捆綁寶石是兼容的。我也遇到了這個錯誤,我試着卸載那個我不需要的那個版本的bundler gem。我也嘗試過使用bundle_x.x.x_install來強制安裝,但是當事情沒有起作用時,我明確提到了指定落入我使用的rails版本所需範圍內的版本的gem。可能這不是正確的方式,但這是事情爲我工作的方式。

相關問題