【问题标题】:Cannot install rails version 4.2.5 on Ubuntu in WSL when I have ruby 2.2.1 active. nokogiri requires Ruby version >= 2.3.0当我激活 ruby​​ 2.2.1 时,无法在 WSL 中的 Ubuntu 上安装 rails 版本 4.2.5。 nokogiri 需要 Ruby 版本 >= 2.3.0
【发布时间】:2019-11-20 16:52:32
【问题描述】:

当我安装并激活了 ruby​​ 2.2.1 时,尝试在 Windows 10 上的 Windows 子系统中的 Ubuntu 上安装 rails 版本 4.2.5,但出现以下错误:

~$ gem install rails -v 4.2.5
ERROR:  Error installing rails:
        nokogiri requires Ruby version >= 2.3.0.

我需要这些版本来协作处理使用这些版本的项目。

我首先在 Windows 10 上安装 WSL(1 而不是 2),然后下载并安装了 Ubuntu Linux。然后我安装了rbenv,更新了依赖项,安装了相当简单的 ruby​​ 2.5.1。 我在安装 ruby​​ 2.2.1 时遇到问题,但在安装之后就到了

$ sudo apt-get install -y libssl1.0-dev

安装 ruby​​ 2.2.1 需要的 libssl 的早期版本。

我安装了node.js 和早期版本的bundler 使用

$ gem install bundler -v 1.17.3

尝试

$ gem install bundler 

因类似错误而失败。

(我还在上面安装了 ruby​​ 2.5.1 和 rails 4.2.5,但问题很少)

尝试各种诊断表明没有为 ruby​​ 2.2.1 安装 rails

~$ rails
rbenv: rails: command not found
The `rails' command exists in these Ruby versions:
  2.5.1

(但不是在 ruby​​ 2.2.1 中,这是我需要它的地方)

在 Windows 文件资源管理器中查看我的文件(仅查看)我可以看到,虽然我的 ruby​​ 2.5.1 gem 包含 rails,但我的 ruby​​ 2.2.1 文件不完整且不包含 rails。

我认为 PATH 是正确的。

$ echo $PATH returns
/home/johnloughran/.rbenv/plugins/ruby-  build/bin:/home/johnloughran/.rbenv/shims:/home/johnloughran/.rbenv/bin:/usr/ 
local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local 
/games:/mnt/c/Program 
Files/WindowsApps/CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2019.522.0_ 
x64__79rhkp1fndgsc:  ........   :/snap/bin

我修改了我的.bashrc 文件,将各种条目添加到上面已包含的 PATH 中。

我从头开始(卸载 Ubuntu)重复了整个过程两次,最后使用相同的块。

在这里尝试并继续的最佳选择是什么?

【问题讨论】:

  • “我需要这些版本来协作处理使用这些版本的项目。”在这一点上,我会回到你将要与之合作的人那里,询问他们是如何做到这一点的。看来 THIS Ruby 版本和 THIS Rails 版本的不兼容对他们来说也是个问题,对吧?
  • 另外,您可能已经意识到这一点,但请确定:Rails 4.2.5 目前只为severe security issues 提供补丁,而 Ruby 2.2.1 是EOL。跨度>

标签: ruby-on-rails ruby linux rubygems rbenv


【解决方案1】:

感谢 Josien 的 cmets。在第一种情况下,我的合作者让这些版本的 Ruby 和 Rails 一起工作,但距离他们安装它们已经有几年了。一个,大卫,通过在 ruby​​ 2.2.1 上尝试全新安装 rails 4.2.5 来帮助我,这遇到了与 nokogiri 相同的问题。

他通过在新的测试目录中安装较低版本的 nokogiri 解决了这个问题,我重复如下:

test$ gem install nokogiri -v 1.9.1

这行得通。然后我将rails安装为

test$ gem install rails --version 4.2.5

终于……成功了!!!! :-) 为了证明这一点,我能够让 rails 正确返回其版本。

test$ rails -v
Rails 4.2.5

然后我能够创建一个应用程序

<working-directory>$ rails new learn-ruby

这几乎可以解决另一个依赖问题,但是嘿……那是编程!

关于您的第二条评论,我对这些东西知之甚少,无法知道这个版本的 ruby​​ 已被弃用,而 rails 版本也即将到来。

【讨论】:

    猜你喜欢
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 2015-04-09
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多