无法解析依赖项:用户请求'did_you_mean (= 1.2.0)' (宝石::无法满足依赖项错误)

4

我刚刚得到一份工作,我的第一个任务是创建当前代码的文档。如果有人能帮我,我会非常感激。

当我设置文档代码时,出现了错误。我能够运行bundle install而没有出现任何错误。我尝试使用以下命令启动服务器:

bundle exec middleman server

但是我遇到了这个错误:

无法解决依赖项:用户请求'did_you_mean (= 1.2.0)' (Gem :: UnsatisfiableDependencyError)

这是我的错误回溯:

    Traceback (most recent call last):
        20: from /Users/reneesarmiento/.rbenv/versions/2.5.1/bin/middleman:23:in `<main>'
        19: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:309:in `activate_bin_path'
        18: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:309:in `synchronize'
        17: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:311:in `block in activate_bin_path'
        16: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:243:in `finish_resolve'
        15: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/request_set.rb:397:in `resolve_current'
        14: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/request_set.rb:385:in `resolve'
        13: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver.rb:188:in `resolve'
        12: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/resolver.rb:42:in `resolve'
        11: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:64:in `resolve'
        10: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:106:in `start_resolution'
         9: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:165:in `initial_state'
         8: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb:51:in `sort_dependencies'
         7: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb:69:in `with_no_such_dependency_error_handling'
         6: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb:52:in `block in sort_dependencies'
         5: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver.rb:277:in `sort_dependencies'
         4: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver.rb:277:in `with_index'
         3: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver.rb:277:in `sort_by'
         2: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver.rb:277:in `each'
         1: from /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver.rb:283:in `block in sort_dependencies'
    /Users/reneesarmiento/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/resolver.rb:231:in `search_for': Unable to resolve dependency: user requested 'did_you_mean (= 1.2.0)' (Gem::UnsatisfiableDependencyError)

这里是我的打包程序环境

Environment

Bundler   1.10.6
Rubygems  2.7.6
Ruby      2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18]
Git       2.20.1 (Apple Git-117)

Gemfile

source 'https://rubygems.org'

ruby '2.5.1'
# Middleman
gem 'middleman', '~>4.0.0'
gem 'middleman-gh-pages', '~> 0.0.3'
gem 'middleman-syntax', '~> 2.1.0'
gem 'middleman-autoprefixer', '~> 2.7.0'
gem 'middleman-sprockets', "~> 4.0.0.rc"
gem 'rouge', '~> 1.10.1'
gem 'redcarpet', '~> 3.3.2'

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    activesupport (4.2.5.1)
      i18n (~> 0.7)
      json (~> 1.7, >= 1.7.7)
      minitest (~> 5.1)
      thread_safe (~> 0.3, >= 0.3.4)
      tzinfo (~> 1.1)
    addressable (2.4.0)
    autoprefixer-rails (6.3.1)
      execjs
      json
    backports (3.6.7)
    capybara (2.5.0)
      mime-types (>= 1.16)
      nokogiri (>= 1.3.3)
      rack (>= 1.0.0)
      rack-test (>= 0.5.4)
      xpath (~> 2.0)
    coffee-script (2.4.1)
      coffee-script-source
      execjs
    coffee-script-source (1.10.0)
    compass-import-once (1.0.5)
      sass (>= 3.2, < 3.5)
    concurrent-ruby (0.9.2)
    contracts (0.12.0)
    erubis (2.7.0)
    execjs (2.6.0)
    fastimage (1.8.1)
      addressable (~> 2.3, >= 2.3.5)
    ffi (1.9.10)
    haml (4.0.7)
      tilt
    hamster (2.0.0)
      concurrent-ruby (~> 0.8)
    hashie (3.4.3)
    i18n (0.7.0)
    json (1.8.6)
    kramdown (1.9.0)
    listen (3.0.5)
      rb-fsevent (>= 0.9.3)
      rb-inotify (>= 0.9)
    middleman (4.0.0)
      coffee-script (~> 2.2)
      compass-import-once (= 1.0.5)
      haml (>= 4.0.5)
      kramdown (~> 1.2)
      middleman-cli (= 4.0.0)
      middleman-core (= 4.0.0)
      sass (>= 3.4.0, < 4.0)
    middleman-autoprefixer (2.7.0)
      autoprefixer-rails (>= 6.3.1, < 7.0.0)
      middleman-core (>= 3.3.3)
    middleman-cli (4.0.0)
      thor (>= 0.17.0, < 2.0)
    middleman-core (4.0.0)
      activesupport (~> 4.2)
      addressable (~> 2.4.0)
      backports (~> 3.6)
      bundler (~> 1.1)
      capybara (~> 2.5.0)
      contracts (~> 0.12.0)
      erubis
      execjs (~> 2.0)
      fastimage (~> 1.8)
      hamster (~> 2.0)
      hashie (~> 3.4)
      i18n (~> 0.7.0)
      listen (~> 3.0)
      padrino-helpers (~> 0.13.0)
      rack (>= 1.4.5, < 2.0)
      sass (>= 3.4)
      tilt (~> 1.4.1)
      uglifier (~> 2.6)
    middleman-gh-pages (0.0.3)
      rake (> 0.9.3)
    middleman-sprockets (4.0.0.rc.1)
      middleman-core (>= 4.0.0.rc.1)
      sprockets (~> 3.0)
    middleman-syntax (2.1.0)
      middleman-core (>= 3.2)
      rouge (~> 1.0)
    mime-types (3.0)
      mime-types-data (~> 3.2015)
    mime-types-data (3.2015.1120)
    mini_portile2 (2.0.0)
    minitest (5.8.4)
    nokogiri (1.6.7.2)
      mini_portile2 (~> 2.0.0.rc2)
    padrino-helpers (0.13.1)
      i18n (~> 0.6, >= 0.6.7)
      padrino-support (= 0.13.1)
      tilt (~> 1.4.1)
    padrino-support (0.13.1)
      activesupport (>= 3.1)
    rack (1.6.4)
    rack-test (0.6.3)
      rack (>= 1.0)
    rake (10.4.2)
    rb-fsevent (0.9.7)
    rb-inotify (0.9.5)
      ffi (>= 0.5.0)
    redcarpet (3.3.4)
    rouge (1.10.1)
    sass (3.4.21)
    sprockets (3.4.1)
      rack (> 1, < 3)
    thor (0.19.1)
    thread_safe (0.3.5)
    tilt (1.4.1)
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    uglifier (2.7.2)
      execjs (>= 0.3.0)
      json (>= 1.8.0)
    xpath (2.0.0)
      nokogiri (~> 1.3)

你的 bundle env 是什么?运行 bundle install 是否没有出现错误?你确定在该项目中使用 ruby 版本 2.5.1 是有效的吗?你能否创建一个 [mcve] 来描述问题,即一个最小化的 GemfileGemfile.lock,让任何人都可以使用它来重现与上述相同的错误? - Tom Lord
嗨@TomLord!对不起,我刚刚更新了我的问题。但是,是的,我能够在没有任何错误的情况下完成bundle install。我的主管将Gemfile中的ruby版本设置为2.5.1。我很抱歉,因为我今天才开始学习ruby,您所说的最小Gemfile和Gemfile.lock是什么意思? - tricenee
2个回答

4

这似乎是个旧问题,所以我猜你已经解决了,但是如果有类似问题的人可以考虑以下建议:

  1. 运行gem list,如果列表中有did_you_mean,可以尝试运行gem uninstall did_you_mean,然后重新运行bundle install
  2. 你可以尝试手动将did_you_mean添加到你的Gemfile中:gem 'did_you_mean', '~>1.2.0'
  3. 如果以上方式都无效,可以考虑升级到新版本的Ruby:对我而言,Ruby 2.5.1看起来相当老 —— 它的继任者Ruby 2.5.8根据Ruby网站的信息处于“安全维护阶段(很快就会停止支持!)”,我用Ruby 2.6.6成功地运行Middleman(版本为4.3.11,但我记得4.0也可以)。

如果以上方法都不起作用或没有帮助,请见谅 —— 这是我的意见!


3
我也曾经因为这个IT问题卡了一整周,对我来说解决方案就是只运行bundle install,因为did_you_mean是默认的gem,无法卸载!请只运行bundle install,而不是试图卸载不能被卸载的默认gems,因为当前最佳答案已经说明了这一点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接