簡體   English   中英

無法推送到Heroku:“在任何來源中都找不到rake-11.1.2”

[英]Cannot push to Heroku: “Could not find rake-11.1.2 in any of the sources”

我在將項目推送到Heroku時遇到問題,它告訴我我缺少寶石rake 11.1.2但是運行gem list rake告訴我確實安裝了耙11.1.2。 在此處輸入圖片說明

通過在推送到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM