没有与我的 Ruby 兼容的 nokogiri 版本

问题描述 投票:0回答:1

我正在从 GitHub 安装 2017 Rails 项目。据我了解,在克隆项目之前我需要先安装 Ruby 和 Rails。该项目使用 Ruby 2.4.1 和 Rails 版本 5.0.1,因此我尝试专门安装它们。我使用的是最新版本的 Linux Mint Cinnamon。

在使用 openssl 遇到很多困难之后,我使用 RVM 成功安装了 Ruby 2.4.1.p111。在此之前,我尝试了(字面上的)所有其他方法来按照 ruby-lang 安装 Ruby,但由于疏忽而失败,但我在继续之前删除了每个失败的安装/管理器应用程序。所以目前只有 RVM 存在。

现在我正在尝试安装 Rails 5.0.1.rc1,也使用 RVM。

从我的 2017 年安装笔记中,我首先

sudo apt-get install nodejs

然后(假设在全局宝石集中)

gem install -V rails --version=5.0.1.rc1

这给了我一个关于不兼容的racc的错误,我按照错误中的建议解决了

gem install racc -v 1.5.2

我再次运行 Rails 安装,这次:

ERROR:  Error installing rails:
    The last version of nokogiri (>= 1.6) to support your Ruby & RubyGems was 1.10.10. Try installing it with `gem install nokogiri -v 1.10.10` and then running the current command again
    nokogiri requires Ruby version >= 2.7, < 3.3.dev. The current ruby version is 2.4.1.111.

所以我按照建议安装了 nokogiri -v 1.10.10 并再次尝试,这给出了错误:

HEAD https://rubygems.org/api/v1/dependencies
404 Not Found
GET https://rubygems.org/prerelease_specs.4.8.gz
200 OK
GET https://rubygems.org/specs.4.8.gz
200 OK
...
/usr/share/rvm/gems/ruby-2.4.1/gems/activesupport-5.0.1/lib/active_support/xml_mini/nokogiri.rb
/usr/share/rvm/gems/ruby-2.4.1/gems/activesupport-5.0.1/lib/active_support/xml_mini/nokogirisax.rb
/usr/share/rvm/gems/ruby-2.4.1/gems/activesupport-5.0.1/lib/active_support/xml_mini/rexml.rb
Successfully installed activesupport-5.0.1
ERROR:  Error installing rails:
    There are no versions of nokogiri (~> 1.14) compatible with your Ruby & RubyGems. Maybe try installing an older version of the gem you're looking for?
    nokogiri requires Ruby version >= 2.7, < 3.3.dev. The current ruby version is 2.4.1.111.

然后我尝试使用以下方法为 Rails 5.0.1 创建一个 gemset:

rvm gemset create rails501
rvm 2.4.1@rails501
gem install rails -v 5.0.1.rc1

但遇到了同样的错误。我研究了一天半的时间,然后打电话给维修店来预订修复我的旧 Linux 机器,它实际上已经崩溃了。我希望在新笔记本电脑上开展项目。仍在研究,等待将旧笔记本电脑送去修理。

目前这是 2.4.1@rails501 gemset 中的 gem 列表:

gem query --local

*** LOCAL GEMS ***

activesupport (5.1.0)
bigdecimal (default: 1.3.0)
bundler (default: 1.17.3)
bundler-unload (1.0.2)
concurrent-ruby (1.2.2)
did_you_mean (1.1.0)
executable-hooks (1.6.1)
gem-wrappers (1.4.0)
i18n (0.9.5)
io-console (default: 0.4.6)
json (default: 2.0.2)
mini_portile2 (2.1.0)
minitest (5.10.1)
net-telnet (0.1.1)
nokogiri (1.7.2)
openssl (default: 2.0.3)
power_assert (0.4.1)
psych (default: 2.2.2)
racc (1.5.2)
rake (12.0.0)
rdoc (default: 5.0.0)
rubygems-bundler (1.4.5)
rvm (1.11.3.9)
test-unit (3.2.3)
thread_safe (0.3.6)
tzinfo (1.2.11)
xmlrpc (0.2.1)
ruby-on-rails ruby nokogiri
1个回答
0
投票

你不需要自己安装依赖项,甚至Rails也不需要,你不应该尝试。可能太多了。

该项目应该有一个 Gemfile.lock 文件,其中包含已知与该项目一起使用的确切依赖项。安装项目允许的最新 Ruby 版本(如果需要 Ruby 2.4 或 2.4.1,请安装 2.4.8;这与 2.4.1 相同,但修复了错误)。

然后克隆存储库并让 Bundler 使用

bundle install
安装依赖项(您可能需要安装 Bundler)。这将使用 Gemfile.lock 安装已知与项目一起使用的依赖项的确切组合。

有关 Bundler 的更多信息,请参阅如何使用 Bundler 管理应用程序依赖关系

© www.soinside.com 2019 - 2024. All rights reserved.