簡體   English   中英

是否可以驗證 Gemfile.lock 中的所有寶石是否存在於 https://rubygems.org?

[英]Is it possible to verify if all gems in a Gemfile.lock exist at https://rubygems.org?

是否可以驗證Gemfile.lock文件中的所有 gem 是否存在於https://rubygems.org

我最近更新了我的彈性 beanstalk 平台版本,由於以下錯誤而失敗:

您的捆綁包被鎖定為 mimemagic (0.3.3),但在您的 Gemfile 中列出的任何源中都找不到該版本。 如果您沒有更改來源,則意味着 mimemagic (0.3.3) 的作者已將其刪除。 您需要將您的捆綁軟件更新為 mimemagic (0.3.3) 以外的版本,該版本尚未刪除才能安裝。

由於托管部署系統的所有復雜性,調試起來很困難。

失敗的原因是mimemagic的作者已經刪除了0.3.3版本,所以我需要將gem更新到0.3.6。 (在此處查看 gem 版本歷史記錄: https://rubygems.org/gems/mimemagic/versions

所以我的問題是:是否有可以運行的命令,例如bundle check_sources掃描 Gemfile.lock 中的 gem 和版本並點擊Gemfile.lock ://rubygems.org以驗證它們是否都存在並且仍然可用?

它類似於bundle check所做的,但不是在本地計算機上查找 gem,而是在遠程源中查找它們。

在向bundler的開發人員提出功能請求后: https://github.com/rubygems/rubygems/issues/4487 ,他們建議至少有一個可行的解決方法。 只需運行以下命令:

bundle install --deployment --redownload

--redownload (或--force )開關將強制下載每個 gem,即使所需的版本已經在本地可用。

--deployment開關強制使用您的 Gemfile 中指定的確切版本(並忽略補丁升級,如~> 0.3.2通常會升級到例如0.3.6 )。 --deployment的使用是部署期間的常見做法。

此解決方案並不理想,因為它需要完全重新安裝所有捆綁包的 gem。 但它有效!

感謝https://github.com/deivid-rodriguez的建議。

我今天遇到了同樣的問題,我在 docker 上運行我的項目,解決方案是更改 Gemfile.lock 上的 mimemagic 版本,我不知道是否是最佳解決方案,但節省了我的一天:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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