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

0wi1tuuw  于 4个月前  发布在  Ruby
关注(0)|答案(1)|浏览(71)

我正在从GitHub安装一个2017年的Rails项目。据我所知,在克隆项目之前,我需要先安装Ruby和Rails。该项目使用Ruby 2.4.1和Rails版本5.0.1,所以我试图专门安装这些。我使用的是最新版本的Linux Mint Cinnamon。
我使用RVM成功安装了Ruby 2.4.1.p111,在使用openssl遇到很多困难之后。在此之前,我尝试了(字面上)所有其他方法来按照ruby-lang安装Ruby,由于疏忽而失败,但我在继续之前删除了每个失败的安装/管理器应用程序。所以目前只有RVM存在。
现在我正在尝试安装Rails 5.0.1.rc1,同样使用RVM。
从我2017年的安装笔记中,我首先安装了sudo apt-get install nodejs
然后(假设在全局gemset中)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)

mrwjdhj3

mrwjdhj31#

你不需要自己安装依赖项,甚至不需要安装Rails,你也不应该尝试。可能会有太多的依赖项,你可能会安装不适合项目的版本。
项目应该有一个Gemfile.lock文件,其中包含与项目相关的确切依赖项。安装项目允许的最新版本的Ruby(如果需要Ruby 2.4或2.4.1,安装2.4.8;这与2.4.1相同,但修复了bug)。
然后克隆存储库,让Bundler使用bundle install安装依赖项(您可能需要安装Bundler)。这将使用Gemfile.lock来安装已知与项目一起工作的依赖项的确切组合。
有关Bundler的更多信息,请参阅How To Manage Application Dependencies With Bundler

相关问题