2011-05-21 30 views
116

我試圖運行Rails項目, 我得到您已經激活耙0.9.0,但你的Gemfile需要耙0.8.7

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. 

如果我做的:「包安裝」

但 我得到

You have already activated rake 0.9.0, but your Gemfile requires rake 0.8.7 

,而這樣做

rake db:migrate 

回答

21

謝謝Dobry Den,乾杯。但我必須做更多。 這裏是解決方案(適用於我)。 我曾在Gemfile中添加

gem 'rake','0.8.7' 

,這是不存在的,但我的rails新版本自動安裝耙(0.9.0)。

我刪除了rake0.9.0之後gem uninstall rake 和做了bundle update rake後,我可以創建並遷移數據庫。

2

如果我理解你沒有問什麼,你需要打開你的Gemfile文件,並更改行...

gem 'rake', '0.8.7' 

...到...

gem 'rake', '0.9.0' 
+0

如果我想使用0.8.7,而不是0.9? – Kir 2011-05-21 06:47:54

+5

默認情況下,您的Gemfile中未指定rake gem,因爲它是Rails依賴項。如果您將耙寶石更新爲0.9.0,那麼您的系統上仍然有0.8.7寶石(請查看'gem list')。我很確定,如果'gem'rake','0.8.7'仍然在'Gemfile.lock'中指定,它仍然會使用0.8.7 gem而不會出現問題。如果沒有,那麼在將'gem'rake','〜> 0.8.7''添加到Gemfile(不是.lock)後,嘗試運行'bundle'並查看它是否有任何內容。 – danneu 2011-05-21 06:55:39

+0

我同意@Dobry Den。 – 2011-05-21 17:27:52

234

首先,檢查以確保您的Gemfile中提到了耙子。如果不是,請添加它,並指定版本「您已經激活」。

然後,你需要告訴捆綁來更新它的使用你的應用程序的版本耙:

bundle update rake 

它會更新Gemfile.lock你。

+2

謝謝。它的工作對我來說 – khanh 2011-05-26 10:04:55

+2

這不適合我。當我運行這個命令時,它和'bundle install'完全一樣,並且顯示它使用相同的rake版本。它不更新它。 – 2011-11-01 16:09:45

+4

我不得不將gem'rake','version#'添加到我的gemfile中,然後運行'bundle update rake'來正確更新我的gemfile.lock。任何無法獲得此解決方案的人員都可以爲他們工作。 – 2011-11-01 16:22:39

36

如果您正在使用像

rake db:migrate 

使用這個代替耙命令:

bundle exec rake db:migrate 

這將是直到導軌和/或耙工作的最新版本的情況很好。

+1

有關「最新版本的導軌和/或耙子」在一起工作的情況只有在特定的,未命名的時間點以及在使用中的工作流程的某些特定假設下才有意義。我認爲這意味着「你正在使用尖端的鐵軌,耙子還沒有趕上。」但是,這種情況可以通過「bundle exec」或「編輯Gemfile」方法來解決,而且這些方法在沒有內部兼容性問題的情況下也可以解決問題,但這只是一個混亂的工作流歷史。 – jackr 2012-07-12 18:13:48

+0

最後有人解釋了錯誤信息。 – fabspro 2013-03-07 12:19:32

+0

謝謝,這正是我的問題 – Student22 2017-08-22 16:35:13

3

添加到您的Gemfile

# Rake 0.9.0 break Rails. 
gem "rake", "!= 0.9.0" 

,然後卸載耙0.9。0

4

我有這個問題(與其他的寶石,沒有耙),我能夠通過

gem uninstall <complaining gem> 
gem install <complaining gem> 

bundle install 
bundle update 

注意解決它,關鍵字「須藤」未使用(即sudo的包安裝),因爲這可能會將您的寶石置於您的導航應用可能不會搜索的目錄中。

5

哦,看,這是未來。對我來說,它抱怨我在0.9.5時安裝了rake 10.x。不太清楚,不熟悉不夠用Ruby來真正深入到發生了什麼事,最近的版本號,但我所做的就是:

gem uninstall rake 
gem install rake -v 0.9.5 

強制系統安裝耙該應用程序想要的版本(我是Octopress)。

+2

未來打來的,它想借你的錘子褲子。 – 2013-03-07 04:27:22

+0

嗨,這是未來。我聽說錘子褲子終於捲土重來了。 – subdigit 2018-01-12 16:41:53

7

在你的Gemfile中指定你想要的版本。

gem 'rake', '0.9.0' 

然後

bundle update rake 

你需要使用捆綁exec來運行rake任務

bundle exec rake db:migrate 
相關問題