[英]Deploying rails - Could not find rake-11.1.2 in any of the sources
[英]Cannot push to Heroku: “Could not find rake-11.1.2 in any of the sources”
通過在推送到Heroku之前從代碼庫中刪除vendor/cache
,可以解決此問題。 這種潛在的混淆結果是由bundle
在不同情況下表現出的行為差異引起的。
在工作站上使用bundle
,該命令將表現出以下行為 :
在安裝gem時,Bundler將檢查供應商/緩存,然后檢查系統的gem。 如果未緩存或未安裝gem,則Bundler會嘗試從您在Gemfile中聲明的源安裝它。
這將產生OP期望的結果,這是一種有效的設置。
但是,Heroku上的bundle
命令正在准備在Web流量負載下運行您的應用程序,這與開發完全不同。 在Heroku上, bundle
命令使用--deployment
標志執行,這將表現出以下行為 :
如果您已運行捆綁包,已在vendor / cache目錄中簽入,並且沒有任何git gem,則Bundler在安裝捆綁包時將不會與Internet聯系。
Bundler在此基於vendor/cache
目錄的存在做出以下假設: bundle pack
命令已經運行,並且gem已預先設置。 由於rake
並不存在於vendor/cache
這是導致的錯誤。
OP可能通過從vendor/cache
刪除相關的gem或通過發出bundle pack
命令並將這些gem檢查到源代碼控制中來解決了該問題。 首先是更常見的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.