2016-04-18 71 views
1

我在推送我的項目時遇到問題Heroku它告訴我我缺少一顆寶石rake 11.1.2還在運行gem list rake告訴我我做安裝了rake 11.1.2。 enter image description here無法推送到Heroku:「在任何源中都找不到rake-11.1.2」

+0

你可以發佈你的Gemfile嗎? –

+0

@JimVanFleet http://pastebin.com/PupEJ2n6 – Edward

+0

你有什麼在供應商/緩存每個http://stackoverflow.com/questions/24768672/cant-push-to-heroku-cant-find-rake-10- 3-2 –

回答

2

在推送到Heroku之前,通過從代碼庫中刪除vendor/cache解決了此問題。這種可能令人困惑的結果來自bundle在不同情況下表現出的行爲差異。

在工作站使用bundle,該命令將顯示出this behavior

在安裝寶石,捆紮機將檢查供應商/緩存,那麼你的系統的寶石。如果一個gem沒有被緩存或安裝,Bundler會嘗試從你在Gemfile中聲明的源中安裝它。

這產生了OP,一個工作設置的預期結果。

但是,Heroku上的bundle命令正準備在Web流量負載下運行您的應用程序,這是一個完全不同的開發壓力。

如果已運行捆綁包,在供應商/緩存目錄檢查,並沒有任何git的寶石,捆紮機不會接觸:在Heroku上,該bundle命令與--deployment標誌,這將表現出this behavior執行互聯網,同時安裝你的包。

Bundler在此基於vendor/cache目錄的存在進行了假設,已運行bundle pack命令,並且預先配置了gem。由於rake,那麼,在vendor/cache中不存在,這是由此產生的錯誤。

OP可能已通過從vendor/cache中刪除相關的寶石或發出bundle pack命令並將寶石檢入源代碼管理來解決此問題。第一種更常見。

相關問題