2017-10-11 83 views
0

我正在嘗試將寶石(hydra-derivatives)升級至版本3.3.2,以查看它是否解決了我們遇到的錯誤。如何將特定的紅寶石升級到特定的(或最新的)版本?

hydra-derivatives不是gemfile gem;它被捆綁爲另一個寶石的依賴,稱爲hydra-works

我已經試過

  1. bundle update --conservative hydra-derivatives但只有升級的Hydra-衍生物 3.2.2(&我們希望3.3.2)和它的依賴mini_magick從4.5.1到4.8.0
  2. 添加gem 'hydra-derivatives', '~> 3.3.2'但是這給了我:

    You have requested: 
        hydra-derivatives ~> 3.3.2 
    
    The bundle currently has hydra-derivatives locked at 3.2.1. 
    Try running `bundle update hydra-derivatives` 
    
    If you are updating multiple gems in your Gemfile at once, 
    try passing them all to `bundle update` 
    
  3. 我不想跑bundle update hydra-derivatives,因爲我不希望它更新一堆不必要的寶石並導致問題,所以爲什麼我讀了關於--conservative

    a。無論如何我都跑這個來測試它,它將目標寶石總共升級到只有3.2.2和15顆寶石!

+0

難道你看這個HTTPS現在看到正確的依賴版本://計算器。 com/questions/7434263/can-i-force-a-gems-dependencies-in-gemfile? – Preston

+0

@Preston不,我沒有遇到過那個。我現在會研究它,看看它是否有幫助,然後再回到這裏。 – RudyOnRails

+0

@Preston感謝您給我更多信息!不幸的是,我只是覺得答案就是我在上面的「嘗試#2」中所做的。 「你需要在你的Gemfile中明確地指定B gem以使用git倉庫或其他版本。」 – RudyOnRails

回答

0

從您的Gemfile中刪除hydra-works gem。 從已安裝的gem位置手動刪除gem及其依賴項,或者如果您在其自己的Ruby環境中使用rbenvrvm運行bundle clean --force運行該應用程序。
當心bundle clean --force將刪除除Gemfile中指定的Ruby版本以外的所有寶石。如果您有其他使用相同版本Ruby的應用程序,則必須重新安裝該應用程序的gems(如果它們與您在此應用程序中使用的不同)。

添加到您的Gemfile

gem 'hydra-derivatives', '~> 3.3.2' 
gem 'hydra-works' 

和運行bundle install

你應該在你Gemfile.lock的

+0

已切換到不同的優先級。將回到這個並給予它應有的關注。目前正在編寫一些測試,看看爲什麼這個bug會彈出而不是假設升級寶石是解決方案! – RudyOnRails

+0

經過一些實驗和事實檢查,我可以確認最新版本的hydra-derivatives 3.3.2最終取決於法拉第(〜> 0.12.1),但另一個寶石取決於法拉第(〜> 0.9.0)。所以這是我的問題!我將嘗試使用iiif-presentation(〜> 0.1.0)並將gemspec碰撞法拉第至法拉第(〜> 0.12.1)。對不起浪費時間,我希望我知道更多進入這個! – RudyOnRails