安装替代版本的 RPM Fedora

模块化 启用 Fedora 在存储库中提供 RPM 包的替代版本。 几个不同的应用程序、语言运行时和工具有多个版本,为每个版本本地构建 Fedora 释放。

这 Fedora 杂志已经涵盖了模块化 Fedora 大约一年前的 28 服务器版。 当时,它只是一个带有附加内容的可选存储库,正如标题提示,仅适用于服务器版。 从那以后发生了很多变化,现在 模块化是核心部分 Fedora 分配. 并且一些包已经完全转移到模块中。 在撰写本文时 – 在 49,464 个二进制 RPM 包中 Fedora 30 — 1,119 (2.26%) 来自一个模块 (更多关于数字)。

模块化基础

因为在多个版本中拥有太多包可能会让人感到不知所措(并且难以管理),所以包被分组为 模块 代表应用程序、语言运行时或任何其他合理组。

模块通常有多个 — 通常代表软件的主要版本。 可并行使用,但在给定系统上只能安装每个模块的一个流。

并且不要让用户有太多的选择,每个 Fedora 发布带有一组 默认值 — 所以只需要在需要时做出决定。

最后,为了简化安装,可以选择使用预定义的模块安装 简介 基于用例。 一个数据库模块,用于 example, 可以安装为客户端、服务器或两者。

实践中的模块化

当您在您的计算机上安装 RPM 软件包时 Fedora 系统,很可能它来自模块流。 你可能没有注意到的原因是模块化的核心原则之一——在有理由知道它之前保持不可见。

让我们比较以下两种情况。 首先,安装流行的 i3 平铺窗口管理器,其次,安装简约的 dwm 窗口管理器:

$ sudo dnf install i3
...
Done!

正如预期的那样,上面的命令会在系统上安装 i3 包及其依赖项。 这里没有发生其他事情。 但是另一个呢?

$ sudo dnf install dwm
...
Enabling module streams:
dwm 6.1
...
Done!

感觉是一样的,但在后台发生了一些事情——默认的 dwm 模块流 (6.1) 被启用,并且来自模块的 dwm 包被安装。

为了透明,输出中有一条关于模块自动启用的消息。 但除此之外,用户不需要了解任何关于模块化的知识,就可以像往常一样使用他们的系统。

但如果他们这样做呢? 让我们看看怎样安装不同版本的 dwm。

使用以下命令查看可用的模块流:

$ sudo dnf module list
...
dwm latest ...
dwm 6.0 ...
dwm 6.1 [d] ...
dwm 6.2 ...
...
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

输出显示 dwm 模块有四个流,默认为 6.1。

安装不同版本的 dwm 包——来自 6.2 流 example — 启用流,然后使用以下两个命令安装包:

$ sudo dnf module enable dwm:6.2
...
Enabling module streams:
dwm 6.2
...
Done!
$ sudo dnf install dwm
...
Done!

最后,让我们看一下配置文件,以 PostgreSQL 作为 example.

$ sudo dnf module list
...
postgresql 9.6 client, server ...
postgresql 10 client, server ...
postgresql 11 client, server ...
...

要将 PostgreSQL 11 安装为服务器,请使用以下命令:

$ sudo dnf module install postgresql:11/server

请注意,除了启用之外,还可以在指定配置文件时使用单个命令安装模块。

可以一次安装多个配置文件。 要添加客户端工具,请使用以下命令:

$ sudo dnf module install postgresql:11/client

还有许多其他具有多个流的模块可供选择。 在撰写本文时,有 83 个模块流 Fedora 30. 这包括两个版本的 MariaDB、三个版本的 Node.js、两个版本的 Ruby 等等。

请参考 模块化的官方用户文档 用于一组完整的命令,包括从一个流切换到另一个流。

相关阅读:

Posted in: LinuxTags: