【问题标题】:Getting “Gem::LoadError: can't activate jwt (~> 0.1.4), already activated jwt-1.0.0.”获取“Gem::LoadError: 无法激活 jwt (~> 0.1.4),已经激活 jwt-1.0.0。”
【发布时间】:2014-12-12 12:47:46
【问题描述】:

我在尝试运行 Cucumber-Ruby 测试时收到“Gem::LoadError: can't activate jwt (~> 0.1.4), already activate jwt-1.0.0.”错误。我的 Gemfile.lock 上有以下条目

jwt (1.0.0)
...
signet (0.4.5)
   addressable (>= 2.2.3)
   faraday (~> 0.8.1)
   jwt (>= 0.1.5)
   multi_json (>= 1.0.0)

我已经安装了 jwt-1.0.0。任何想法如何解决这个问题?非常感谢!

【问题讨论】:

    标签: ruby-on-rails ruby cucumber


    【解决方案1】:

    Signet gem(对我来说,被称为 Google API Client 的依赖项)很顽皮,并且在 Gemspec 之外指定了 JWT gem 版本。

    # in lib/signet/oauth_2/client.rb line 25
    gem 'jwt', '~> 0.1.4'
    require 'jwt'
    

    在您的 Gemfile 中使用 Github 版本的 Signet gem,该恶意调用已删除。

    gem 'signet', git: "https://github.com/google/signet.git"
    

    【讨论】:

      【解决方案2】:

      尝试在 Gemfile 中显式回滚 jwt,如下所示:

      gem 'jwt', '~> 0.1.13'
      

      我在使用 google-api-client 而不是 signet 时遇到了类似的问题:当 google-api-client Gemfile 说 'jwt', '~> 0.1.5' 时,Gemfile.lock 有 jwt (>= 0.1.5),而 Gemfile.lock 可能应该遵循这一点。上面的 Gemfile 更改确保 jwt 确实是 ~> 0.1.5 并且不会达到 1.*。

      【讨论】:

        猜你喜欢
        • 2018-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-28
        • 2014-08-30
        • 1970-01-01
        • 2013-01-07
        相关资源
        最近更新 更多