【问题标题】:Nokogiri 1.6.8 is installed but gives error for previous Nokogiri when running "bundle install"Nokogiri 1.6.8 已安装,但在运行“捆绑安装”时出现以前的 Nokogiri 错误
【发布时间】:2019-11-05 18:52:42
【问题描述】:

我们的服务器关闭,Redmine 停止工作,所以我不得不重新安装 Bundler 并运行 bundle install

在运行 bundle install 时出现此错误:

c:\APPS\webapps\redmine-3.2.0>bundle install
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
Using rake 12.3.2
Using concurrent-ruby 1.1.5
Using i18n 0.9.5
Using json 1.8.6
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 4.2.5
Using builder 3.2.3
Using erubis 2.7.0
Using mini_portile2 2.4.0
Fetching nokogiri 1.9.1 (x64-mingw32)
Installing nokogiri 1.9.1 (x64-mingw32)
Gem::RuntimeRequirementNotMetError: nokogiri requires Ruby version >= 2.2, <
2.6. The current ruby version is 2.0.0.
An error occurred while installing nokogiri (1.9.1), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '1.9.1' --source
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  rails was resolved to 4.2.5, which depends on
    actionmailer was resolved to 4.2.5, which depends on
      actionpack was resolved to 4.2.5, which depends on
        actionview was resolved to 4.2.5, which depends on
          rails-dom-testing was resolved to 1.0.9, which depends on
            nokogiri

我已经安装了 Nokogiri 1.6.8。我不确定为什么它无法读取我安装的 Nokogiri 版本并且仍然获取 1.9.1,因为我需要 Redmine 2.3.0 的 Ruby v.2,但是我的包仍然告诉我它正在寻找 1.9.1。在做bundle install 时,我尝试根据我的研究将Gemfile 更改为gem "nokogiri", "&gt;= 1.4.2",但是1.9.1 仍然存在。如何成功升级 Nokogiri?

我用过:

gem "nokogiri", "1.6.8"

在我的 Gemfile 中,我有:

c:\APPS\webapps\redmine-3.2.0>bundle update nokogiri
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
Bundler could not find compatible versions for gem "nokogiri":
  In Gemfile:
    nokogiri (= 1.6.8) java

    roadie-rails java was resolved to 1.2.0, which depends on
      roadie (~> 3.1) java was resolved to 3.5.0, which depends on
        nokogiri (~> 1.8) java

如果我运行 gem install nokogiri -v '1.9.1',我会收到错误消息,指出我的 Ruby 版本低于预期,并且我无法拥有更高的 Ruby 版本,因为 Redmine 是旧版本。

这是我拥有的所有 Nokogiri 版本:

c:\APPS\webapps\redmine-3.2.0>gem uninstall nokogiri
YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).

    Select gem to uninstall:
    1. nokogiri-1.6.8.rc3-x64-mingw32
    2. nokogiri-1.6.8-x64-mingw32
    3. nokogiri-1.6.8.1-x64-mingw32
    4. All versions

【问题讨论】:

  • 如果您指定nokogiri &gt;= 1.4.2,您将获得最新的。在这种情况下是 1.9.1,它需要 Ruby 2.2。尝试指定您想要的 nokogiri 的确切版本。也许像~&gt; 1.6
  • 我应该说 nokogiri = 1.6.8 吗?
  • gem 'nokogiri', '1.6.8'
  • 它说 Bundler 找不到 gem "nokogiri" 的兼容版本:
  • 看起来道路需要 1.8+,因此您需要指定类似 ~&gt; 1.8 的内容。通过 nokogiri 文档查看,1.9.1 看起来像是放弃了对 2.0 的支持,因此您需要找到比这更少但大于 1.8 的东西。目前尚不清楚为什么 bundler 没有为您解决这个问题,但您的 Gemfile.lock 中可能有一些东西导致了它(或者可能有人在没有任何参数的情况下运行了包更新)

标签: ruby-on-rails ruby rubygems nokogiri redmine


【解决方案1】:

我无法解决这个问题。它正在循环升级和降级,所以在经历了很多挫折之后,我尝试了 Redmine 4.2 声称兼容的 Ruby 2.6,但仍然存在问题。我降级到 Ruby 2.3 并且它工作正常,然后我根据 redmine.org 文档迁移了我的数据库,几乎所有东西都可以正常工作,我得到的反馈是它更快。

根据我的经验,你的 Redmine 数据库仍然可以工作,所以不用担心它是同一个版本。

【讨论】:

    猜你喜欢
    • 2015-05-15
    • 2017-01-08
    • 2013-06-16
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多