Apt on WSL2 的 Ubuntu 版本不包括最新版本的 ruby​​-build

Posted

技术标签:

【中文标题】Apt on WSL2 的 Ubuntu 版本不包括最新版本的 ruby​​-build【英文标题】:Apt on WSL2's version of Ubuntu doesn't include latest version of ruby-build 【发布时间】:2021-08-03 19:22:40 【问题描述】:

我安装了 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 或其他问题的问题吗?我该如何解决?

【问题讨论】:

这是预期的。您拥有的版本是官方存储库中提供的最新版本。 【参考方案1】:

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

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

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

【讨论】:

以上是关于Apt on WSL2 的 Ubuntu 版本不包括最新版本的 ruby​​-build的主要内容,如果未能解决你的问题,请参考以下文章

WSL2 Ubuntu安装MySQL教程

WSL2 Ubuntu安装MySQL教程

git安装,以及远程上传到gitee,(环境是wsl2, Ubuntu 20.04 LTS)

WSL2 X-Server 网络问题

WSL2 Ubuntu安装Kafka教程

WSL2 Ubuntu安装Kafka教程