如何在我的 Ubuntu 系统上升级到 Ruby 2.2?

Dav*_*ave 16 upgrade ruby apt alternative

我正在使用 Ubuntu Linux。下面是 uname 信息

myuser@myinstance:~$ uname -a
Linux myinstance 3.18.0-52-generic #123-Ubuntu SMP Fri Feb 19 14:27:58 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我正在尝试升级我机器上的 Ruby 版本,该版本目前安装在

/usr/lib/ruby/1.9.1
Run Code Online (Sandbox Code Playgroud)

我尝试遵循此处的建议 —通过 apt 安装 ruby​​ 2.2.3,但不幸的是我收到错误消息,“替代路径 /usr/bin/ruby2.2 不存在”。升级我的系统以使用 Ruby 2.2 或更高版本的正确方法是什么?

myuser@myinstance:~/racertracks$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.2 400 \
>  --slave /usr/bin/rake rake /usr/bin/rake2.2 \
>  --slave /usr/bin/ri ri /usr/bin/ri2.2 \
>  --slave /usr/bin/rdoc rdoc /usr/bin/rdoc2.2 \
>  --slave /usr/bin/gem gem /usr/bin/gem2.2 \
>  --slave /usr/bin/irb irb /usr/bin/irb2.2 \
>  --slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby2.2.1.gz \
>  --slave /usr/share/man/man1/rake.1.gz rake.1.gz /usr/share/man/man1/rake2.2.1.gz \
>  --slave /usr/share/man/man1/ri.1.gz ri.1.gz /usr/share/man/man1/ri2.2.1.gz \
>  --slave /usr/share/man/man1/rdoc.1.gz rdoc.1.gz /usr/share/man/man1/rdoc2.2.1.gz \
>  --slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem2.2.1.gz \
>  --slave /usr/share/man/man1/irb.1.gz irb.1.gz /usr/share/man/man1/irb2.2.1.gz
update-alternatives: error: alternative path /usr/bin/ruby2.2 doesn't exist
Run Code Online (Sandbox Code Playgroud)

Eld*_*eek 19

为什么不使用ruby 2.3 ,它在 16.04 和 17.10 的存储库中可用

sudo apt update
Run Code Online (Sandbox Code Playgroud)

更新完成后运行:

sudo apt-get install ruby2.3 ruby2.3-dev
Run Code Online (Sandbox Code Playgroud)

或者尝试 ruby​​ 2.4 或 2.5

您可以通过 Brightbox PPA 获得这些

  1. 添加存储库并更新

    sudo apt-add-repository ppa:brightbox/ruby-ng && sudo apt-get update
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装

    sudo apt-get install ruby2.4
    
    Run Code Online (Sandbox Code Playgroud)

    18.04

    sudo apt-get install ruby2.5 ruby2.5-dev
    
    Run Code Online (Sandbox Code Playgroud)

可以在“Brightbox”团队启动板页面上找到有关上述 PPA 中包状态的信息

或者,您可以尝试alternative path /usr/bin/ruby2.2 doesn't exist通过创建错误并重试来反向破解错误sudo mkdir /usr/bin/ruby2.2