如何将特定的ruby gem升级到特定(或最新)版本?

时间:2017-10-11 21:27:34

标签: ruby-on-rails ruby rubygems bundler

我正在尝试将gem(hydra-derivatives)升级到版本3.3.2以查看它是否解决了我们遇到的错误。

hydra-derivatives 不是 Gemfile gem;它被捆绑为另一个gem的依赖项,称为hydra-works

我尝试过什么

  1. bundle update --conservative hydra-derivatives但只是升级了水合物衍生物 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

    一个。无论如何我跑了这个测试它,它将目标宝石升级到只有3.2.2和15颗宝石!

1 个答案:

答案 0 :(得分:2)

从Gemfile中删除hydra-works gem。 从已安装的gem位置手动删除gem及其依赖项,或者如果您使用rbenvrvm运行bundle clean --force将应用程序放在自己的Ruby环境中。 当心bundle clean --force将删除Ruby版本中除Gemfile中指定的宝石之外的所有宝石。如果您有其他使用相同版本Ruby的应用程序,则必须重新安装该应用程序的gem,如果它们与您在此应用程序中使用的不同。

将此添加到您的Gemfile

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

并运行bundle install

您应该在Gemfile.lock中看到正确的依赖版本