0

我安装了 WSL2 和 Ubuntu 20.04,其中包括 Ruby 2.7.0:

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]

我想安装 Ruby 3.0.1,但ruby-build没有:

...
2.4.0-rc1
2.4.0
2.4.1
2.5.0-dev
jruby-1.5.6
jruby-1.6.3
...

我更新了apt

$ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Ign:3 https://dl.bintray.com/sbt/debian  InRelease
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 https://dl.bintray.com/sbt/debian  Release [815 B]
Get:7 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [982 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [774 kB]
Fetched 1971 kB in 1s (1379 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

但是版本ruby-build仍然很旧:

$ apt show ruby-build
Package: ruby-build
Version: 20170726-1
Priority: optional
...

我的 OSX 机器:

$ ruby-build --version
ruby-build 20210510

这是 Ubuntu 的问题apt,还是其他问题?我如何解决它?

4

1 回答 1

2

Ubuntu 版本要么是“长期支持”(LTS),要么是“临时版本”(参见Ubuntu 发行周期)。“偶数年,四月/春季”(例如 20.04 或 22.04)版本是长期支持版本,旨在提供稳定的、经过验证的软件包,Canonical 将支持 5 年。其间的其他 3 个临时版本(例如 20.10、21.04、21.10)可能会将软件包更新到较新的版本以进行测试。

也就是说,Canonical 仅将 Ubuntu 的 LTS 版本放在 WSL 的 Microsoft Store 中。可以升级到临时版本。请注意,您使用的是“不太稳定”的版本。您可能希望在单独的安装中执行此操作,并且仍然保留您的 20.04 版本。如果是这样,请参阅此答案以获取有关如何执行此操作的文章。仍然不能保证 21.04 包含更高版本的 ruby​​-build。它显然不会在 5 月 10 日发布。我还没有检查包列表以查看 21.04 中的 ruby​​-build 版本。

无论如何,我会提出一个不同的选择。您提到您的 MacOS 版本是最新的,我假设您使用 Homebrew ( brew) 安装了它。ruby-build 维护者负责更新该软件包并确保可以通过 Homebrew 获得最新版本。如果你想在 WSL 上安装和使用 Homebrew,你也可以. 我自己没有这样做,但从 Homebrew 文档看来完全有可能。不过,我想我会先从 Ubuntu 存储库中清除您安装的 ruby​​-build 软件包,以避免冲突。

于 2021-05-13T18:20:06.607 回答