【问题标题】:How to install Nokogiri on Ruby 2.7.0如何在 Ruby 2.7.0 上安装 Nokogiri
【发布时间】:2020-06-24 18:40:12
【问题描述】:

我最近升级到 Ruby v2.7.0。

当我尝试安装 Nokogiri 时,出现以下错误:

ERROR:  Error installing nokogiri:
        The last version of nokogiri (>= 0) to support your Ruby & RubyGems was
1.10.9. Try installing it with `gem install nokogiri -v 1.10.9`
        nokogiri requires Ruby version >= 2.3, < 2.7.dev. The current ruby versi
on is 2.7.0.0.

我尝试使用

安装这个 gem
gem install nokogiri -v 1.10.9

但我遇到了同样的错误。

现在我使用的是 Ruby v2.7.0,如何安装 Nokogiri?我需要安装早期版本的 Ruby 吗?

gem env 的结果是:

RubyGems Environment:
  - RUBYGEMS VERSION: 3.1.2
  - RUBY VERSION: 2.7.0 (2019-12-25 patchlevel 0) [x64-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby27-x64/lib/ruby/gems/2.7.0
  - USER INSTALLATION DIRECTORY: C:/Users/gritz/.gem/ruby/2.7.0
  - RUBY EXECUTABLE: C:/Ruby27-x64/bin/ruby.exe
  - GIT EXECUTABLE: C:\Program Files\Git\cmd/git.EXE
  - EXECUTABLE DIRECTORY: C:/Ruby27-x64/bin
  - SPEC CACHE DIRECTORY: C:/Users/gritz/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: C:/ProgramData
  - RUBYGEMS PLATFORMS:
    - ruby
    - x64-mingw32
  - GEM PATHS:
     - C:/Ruby27-x64/lib/ruby/gems/2.7.0
     - C:/Users/gritz/.gem/ruby/2.7.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - C:\windows\system32
     - C:\windows
     - C:\windows\System32\Wbem
     - C:\windows\System32\WindowsPowerShell\v1.0\
     - C:\windows\System32\OpenSSH\
     - C:\Program Files\Intel\WiFi\bin\
     - C:\Program Files\Common Files\Intel\WirelessCommon\
     - C:\Program Files\erl10.3\bin
     - C:\Program Files (x86)\Elixir\bin
     - C:\Users\gritz\.mix\escripts
     - C:\Program Files\Git\cmd
     - C:\Users\gritz\.rbenv-win\bin
     - C:\Users\gritz\.rbenv-win\shims
     - C:\Users\gritz\.rbenv-win\bin
     - C:\Users\gritz\.rbenv-win\shims
     - C:\Users\gritz\.rbenv-win\bin
     - C:\Users\gritz\.rbenv-win\shims
     - _SZ    C:\Ruby26\bin
     - C:\Ruby27-x64\bin
     - C:\Ruby26-x64\bin
     - %USERPROFILE%\AppData\Local\Microsoft\WindowsApps

针对其中一个cmets,我添加了gem specification -r nokogiri的结果:

-r nokogiri
--- !ruby/object:Gem::Specification
name: nokogiri
version: !ruby/object:Gem::Version
  version: 1.10.9
platform: ruby
authors:
- Aaron Patterson
- Mike Dalessio
- Yoko Harada
- Tim Elliott
- Akinori MUSHA
- John Shahid
- Lars Kanis
autorequire:
bindir: bin
cert_chain: []
date: 2020-03-01 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
  name: mini_portile2
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 2.4.0
  type: :runtime
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 2.4.0
- !ruby/object:Gem::Dependency
  name: concourse
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '0.24'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '0.24'
- !ruby/object:Gem::Dependency
  name: hoe-bundler
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '1.2'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '1.2'
- !ruby/object:Gem::Dependency
  name: hoe-debugging
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '2.0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '2.0'
- !ruby/object:Gem::Dependency
  name: hoe-gemspec
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '1.0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '1.0'
- !ruby/object:Gem::Dependency
  name: hoe-git
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '1.6'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '1.6'
- !ruby/object:Gem::Dependency
  name: minitest
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '5.8'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '5.8'
- !ruby/object:Gem::Dependency
  name: racc
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.4.14
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.4.14
- !ruby/object:Gem::Dependency
  name: rake
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '12.0'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '12.0'
- !ruby/object:Gem::Dependency
  name: rake-compiler
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.1.0
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.1.0
- !ruby/object:Gem::Dependency
  name: rake-compiler-dock
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 0.7.0
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 0.7.0
- !ruby/object:Gem::Dependency
  name: rexical
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.0.5
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: 1.0.5
- !ruby/object:Gem::Dependency
  name: rubocop
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '0.73'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '0.73'
- !ruby/object:Gem::Dependency
  name: simplecov
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '0.16'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '0.16'
- !ruby/object:Gem::Dependency
  name: rdoc
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '4.0'
    - - "<"
      - !ruby/object:Gem::Version
        version: '7'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - ">="
      - !ruby/object:Gem::Version
        version: '4.0'
    - - "<"
      - !ruby/object:Gem::Version
        version: '7'
- !ruby/object:Gem::Dependency
  name: hoe
  requirement: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '3.22'
  type: :development
  prerelease: false
  version_requirements: !ruby/object:Gem::Requirement
    requirements:
    - - "~>"
      - !ruby/object:Gem::Version
        version: '3.22'
description: |-
  Nokogiri (?) is an HTML, XML, SAX, and Reader parser.  Among
  Nokogiri's many features is the ability to search documents via XPath
  or CSS3 selectors.
email:
- aaronp@rubyforge.org
- mike.dalessio@gmail.com
- yokolet@gmail.com
- tle@holymonkey.com
- knu@idaemons.org
- jvshahid@gmail.com
- lars@greiz-reinsdorf.de
executables: []
extensions: []
extra_rdoc_files: []
files: []
homepage: https://nokogiri.org
licenses: []
metadata:
  homepage_uri: https://nokogiri.org
  bug_tracker_uri: https://github.com/sparklemotion/nokogiri/issues
  documentation_uri: https://nokogiri.org/rdoc/index.html
  changelog_uri: https://nokogiri.org/CHANGELOG.html
  source_code_uri: https://github.com/sparklemotion/nokogiri
post_install_message:
rdoc_options: []
require_paths:
- lib
required_ruby_version: !ruby/object:Gem::Requirement
  requirements:
  - - ">="
    - !ruby/object:Gem::Version
      version: 2.3.0
required_rubygems_version: !ruby/object:Gem::Requirement
  requirements:
  - - ">="
    - !ruby/object:Gem::Version
      version: '0'
requirements: []
rubygems_version: 3.1.2
signing_key:
specification_version: 4
summary: Nokogiri (?) is an HTML, XML, SAX, and Reader parser
test_files: []

【问题讨论】:

  • 无法使用ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19] 进行复制。 gem install nokogiri -v 1.10.9 成功完成。请提供有关您的环境和版本、输入的确切命令以及收到的确切输出的更多信息。
  • "Stack Overflow question checklist" 和 "Writing The Perfect Question" 以及 "MCVE" 是重要的阅读材料。我们不能重复这个问题,如果不能重复这个问题,问题就会离题。将gem env 的输出添加到您的问题中,格式正确且没有“编辑”或“更新”类型标签。
  • 您是否安装了多个版本的 Ruby?您使用的是 rbenv 或 RVM 之类的沙箱吗?
  • 我确实安装了多个版本的 Ruby。我没有使用像 rvm 这样的版本管理器。
  • @Rajagopalan:这是一个有效的问题。但现在这也是一个的问题,因为 OP 已经在他们的环境中进行了编辑。 anothermh 似乎从 OSX 的角度回答,所以也许这只是在 Windows 上发生的事情?可能需要使用windows 进行标记。添加gem specification -r nokogiri 也可能很好。

标签: ruby rubygems nokogiri


【解决方案1】:

如果您使用的是 Ruby + DevKit,请尝试以下命令:

gem install nokogiri --platform=ruby

它应该安装 nokogiri 并使其适合您的 Ruby 版本。 如果它再次失败或需要永远获取和安装 gem,请先运行此命令:

ridk exec pacman -S mingw-w64-x86_64-libxslt

然后这个:

gem install nokogiri --platform=ruby -- --use-system-libraries

Nokogori 应该在这些命令之后安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多