ruby-on-rails - 当我激活 ruby​​ 2.2.1 时,无法在 WSL 中的 Ubuntu 上安装 Rails 版本 4.2.5。 nokogiri 需要 Ruby 版本 >= 2.3.0

标签 ruby-on-rails ruby linux rubygems rbenv

当我安装并激活 ruby​​ 2.2.1 时,尝试在 Windows 10 上的 Linux 的 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 gems 包含 Rails,但我的 ruby​​ 2.2.1 文件不完整且不包含 Rails。

我认为路径是正确的。

$ 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)重复了整个过程两次,最后使用相同的 block 。

我尝试继续的最佳选择是什么?

最佳答案

感谢 Josien 的评论。在第一个案例中,我的合作者让这些版本的 Ruby 和 Rails 一起工作,但距离他们安装它们已经有几年了。 David 帮助我尝试在 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 版本也即将到来,这有多相关。

关于ruby-on-rails - 当我激活 ruby​​ 2.2.1 时,无法在 WSL 中的 Ubuntu 上安装 Rails 版本 4.2.5。 nokogiri 需要 Ruby 版本 >= 2.3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56981244/

相关文章:

ruby-on-rails - 如何访问 rails 配置路径中的 yaml

linux - 使用 Ctrl+C 杀死从 Bash 脚本运行的 Java 应用程序进程树

c - Unix - Pipe、forks、execlp、dup2、c 程序

python - 使用 scapy 和 IP 获取 MAC

ruby-on-rails - 如何删除 routes.rb 中为路径中的参数生成的前缀

ruby-on-rails - ActionController::UrlGenerationError:尝试测试 Controller 时没有路由匹配

ruby-on-rails - 合并两个 ruby 对象

ruby-on-rails - 推送到 Heroku 时出现 Rails 3.1 Sqlite3 错误

ruby - 在 Ruby 中更改字符串中的字符时出现意外行为

ruby - 如何从 Mongoid 的嵌入文档中排除字段?