2012-03-14 102 views
2

安裝Rbenv和Ruby 1.9.2和1.8.7並將當前項目設置爲使用1.9.2(以前使用1.8.7)後,Rake將不會長時間運行。乳寧bundle install安裝rbenv並更改Ruby版本後,Rake不再運行

Could not find rake-0.8.7 in any of the sources 
Run `bundle install` to install missing gems. 

此:運行rake routes給出的消息。

試圖bundle exec rake routes(這是之前安裝Rbenv所使用的方法),產生如下錯誤:

NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01. 
Gem.source_index called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/shared_helpers.rb:3. 
Invalid gemspec in [/Users/jackrg/Documents/Novelty-Stats/vendor/local/ruby/1.8/specifications/jquery-rails-1.0.19.gemspec]: invalid date format in specification: "2011-11-26 00:00:00.000000000Z" 
Invalid gemspec in [/Users/jackrg/Documents/Novelty-Stats/vendor/local/ruby/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z" 
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01. 
Gem.source_index called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/source.rb:161. 
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01. 
Gem::SourceIndex#each called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/source.rb:161. 
Could not find rake-0.8.7 in any of the sources 

注意,應用程序本身運行沒有在發展期(rails crails s等)。

另請注意gem list列出耙子(0.8.7)作爲本地寶石。

如果我更改gemfile來請求rake版本0.9.2,然後更新bundle(bundle update rake),我會得到相同的錯誤,只不過他們現在引用rake 0.9.2而不是0.8.7。

+0

你在安裝紅寶石後運行'rbenv rehash'嗎?另外,您是否遵循了將shims目錄添加到路徑的說明? – aceofspades 2012-03-14 03:16:03

+0

正如Sam Stephenson關於安裝rbenv的文檔2.1節的第3步和第4步所描述的那樣,我做了'echo'eval「$(rbenv init - )」>>〜/ .bash_profile',後面跟着'exec $ SHELL',如果這是你是什​​麼意思。我不知道有任何其他步驟來啓用墊片。是否有獨立的方式來測試墊片是否啓用? – 2012-03-15 18:42:09

回答

1

根本原因是寶石文件,它仍然引用ruby-debug。更改爲ruby-debug19,做了bundle installbundle update,現在耙工作正常。無法解釋爲什麼應用程序與ruby-debug的引用運行正常。

4

安裝新的ruby版本後,您需要運行rbenv rehash。接下來,運行gem install rake,然後再次運行rbenv rehash,因爲rake會安裝二進制文件。

+0

是否做到了。現在,在任何源代碼中找不到rake-0.9.2和運行bundle安裝程序來安裝缺少的gem。運行'bundle install'並得到'不幸的是,發生了一個致命的錯誤。請通過https://github.com/carlhuda/bundler/issues向Bundler問題跟蹤器報告此錯誤,以便我們解決它。按要求報告錯誤。 – 2012-03-15 16:07:06

+0

谷歌搜索後,嘗試了'bundle update',報告它在安裝了ruby gems/installer.rb(第552行)錯誤'Can not handle 1.9.x yet'的linecache(0.46)後被轟炸。 – 2012-03-15 18:35:49

+0

回頭看看你的第一個錯誤,提到了系統紅寶石('/Library/Ruby/Gems/1.8/ ...')。我懷疑你可能試圖安裝rake,然後再做第一次rehash,這會讓事情混淆不清。如果我是你,我會刪除'〜/ .rbenv/versions/1.9.2'目錄並重新開始。另外,在安裝新版本的ruby之前,您是否在安裝rbenv和**之後將'eval「$(rbenv init - )」'添加到'〜/ .profile'中? – Mike 2012-03-15 22:11:11

1

您應該嘗試使用chruby而不是rbenv。與rbenv不同,chruby不依賴墊片;所以不必再一直運行rehash。相反,chruby只修改PATH,GEM_HOMEGEM_PATH

1

我有同樣的問題。我的問題的原因是除了在rbenv中的shims目錄之外,Rake還在/usr/bin/local/中找到。要檢查這是否是問題首先卸載耙gem uninstall rake然後運行which rake。如果您找回的路徑不是/Users/username/.rbenv/shims/rake,那麼只需使用sudo rm /path/to/file刪除該二進制文件。

請注意,在我的情況下,至少which gem正在使用由rbenv管理的shimed可執行文件,而rake不是。所以一切工作都找到,直到我試圖從終端調用rake command

相關問題