2017-10-11 31 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