如何使用 DNF 仅安装安全和错误修复更新

本文将探讨如何过滤您可用的更新 Fedora Linux 系统按类型。 这种方式你可以选择,因为 example,仅安装安全或错误修复更新。 本文将演示在工具箱中运行 dnf 命令,而不是使用真实的 Fedora Linux 安装。

在阅读本文之前,您可能还想阅读使用 dnf updateinfo 阅读更新更改日志。

介绍

如果您一直在管理系统更新 Fedora Linux 或任何其他 GNU/Linux 发行版,您可能已经注意到,当您运行系统更新时(使用 dnf 更新,在 Fedora 工作站),您通常不会只安装安全更新。

由于 GNU/Linux 发行版中的包管理是如何工作的,通常(除了在容器中运行、在 Flatpak 或类似技术下运行的软件)您正在更新每个包,无论它是“系统”软件还是“应用程序”。

DNF 将更新分为三种类型:“安全”、“错误修复”和“增强”。 而且,正如您将看到的,DNF 允许过滤您想要操作的类型。

但是,为什么您只想更新一部分包呢?

好吧,这可能取决于您个人选择如何处理系统更新。 如果您目前对更新所有内容感到不舒服,那么将当前更新限制为仅安全更新可能是一个不错的选择。 您还可以安装错误修复更新,并且仅在未来的机会中安装增强功能和其他类型的更新。

如何过滤安全和错误修复更新

首先创建一个 Fedora Linux 34 工具箱:

toolbox create --distro fedora --release f34 updatefilter-demo

然后进入那个工具箱:

toolbox enter updatefilter-demo

从现在开始,命令可以在真实的 Fedora Linux 安装。

首先,运行 dnf check-update 以查看未过滤的软件包列表:

$ dnf check-update
audit-libs.x86_64                        3.0.5-1.fc34                   updates
avahi.x86_64                             0.8-14.fc34                    updates
avahi-libs.x86_64                        0.8-14.fc34                    updates
...
vim-minimal.x86_64                       2:8.2.3318-1.fc34              updates
xkeyboard-config.noarch                  2.33-1.fc34                    updates
yum.noarch                               4.8.0-1.fc34                   updates

DNF 支持将要操作的更新类型作为参数传递:-security 用于安全更新,-bugfix 用于错误修复更新,–enhancement 用于增强更新。 这些适用于诸如 dnf check-update、dnf update 和 dnf updateinfo 之类的命令。

为了 example,这是您仅按安全更新过滤可用更新列表的方式:

$ dnf check-update --security
avahi.x86_64                               0.8-14.fc34                  updates
avahi-libs.x86_64                          0.8-14.fc34                  updates
curl.x86_64                                7.76.1-7.fc34                updates
...
libgcrypt.x86_64                           1.9.3-3.fc34                 updates
nettle.x86_64                              3.7.3-1.fc34                 updates
perl-Encode.x86_64                         4:3.12-460.fc34              updates

现在同样的事情,但仅通过错误修复更新:

$ dnf check-update --bugfix
audit-libs.x86_64                      3.0.5-1.fc34                     updates
ca-certificates.noarch                 2021.2.50-1.0.fc34               updates
coreutils.x86_64                       8.32-30.fc34                     updates
...
systemd-pam.x86_64                     248.7-1.fc34                     updates
systemd-rpm-macros.noarch              248.7-1.fc34                     updates
yum.noarch                             4.8.0-1.fc34                     updates

它们甚至可以组合使用,因此您可以同时使用其中的两个或多个。 为了 example,您可以过滤列表以显示安全和错误修复更新:

$ dnf check-update --security --bugfix
audit-libs.x86_64                      3.0.5-1.fc34                     updates
avahi.x86_64                           0.8-14.fc34                      updates
avahi-libs.x86_64                      0.8-14.fc34                      updates
...
systemd-pam.x86_64                     248.7-1.fc34                     updates
systemd-rpm-macros.noarch              248.7-1.fc34                     updates
yum.noarch                             4.8.0-1.fc34                     updates

如前所述,dnf updateinfo 也适用于此过滤,因此您可以过滤 dnf updateinfo、dnf updateinfo 列表和 dnf updateinfo 信息。 为了 example,对于安全更新及其 ID 的列表:

$ dnf updateinfo list --security
FEDORA-2021-74ebf2f06f Moderate/Sec.  avahi-0.8-14.fc34.x86_64
FEDORA-2021-74ebf2f06f Moderate/Sec.  avahi-libs-0.8-14.fc34.x86_64
FEDORA-2021-83fdddca0f Moderate/Sec.  curl-7.76.1-7.fc34.x86_64
FEDORA-2021-e14e86e40e Moderate/Sec.  glibc-2.33-20.fc34.x86_64
FEDORA-2021-e14e86e40e Moderate/Sec.  glibc-common-2.33-20.fc34.x86_64
FEDORA-2021-e14e86e40e Moderate/Sec.  glibc-minimal-langpack-2.33-20.fc34.x86_64
FEDORA-2021-8b25e4642f Low/Sec.       krb5-libs-1.19.1-14.fc34.x86_64
FEDORA-2021-83fdddca0f Moderate/Sec.  libcurl-7.76.1-7.fc34.x86_64
FEDORA-2021-31fdc84207 Moderate/Sec.  libgcrypt-1.9.3-3.fc34.x86_64
FEDORA-2021-d1fc0b9d32 Moderate/Sec.  nettle-3.7.3-1.fc34.x86_64
FEDORA-2021-92e07de1dd Important/Sec. perl-Encode-4:3.12-460.fc34.x86_64

如果需要,您可以只安装安全更新:

# dnf update --security
================================================================================
 Package                     Arch        Version             Repository    Size
================================================================================
Upgrading:
 avahi                       x86_64      0.8-14.fc34         updates      289 k
 avahi-libs                  x86_64      0.8-14.fc34         updates       68 k
 curl                        x86_64      7.76.1-7.fc34       updates      297 k
...
 perl-Encode                 x86_64      4:3.12-460.fc34     updates      1.7 M
Installing weak dependencies:
 glibc-langpack-en           x86_64      2.33-20.fc34        updates      563 k

Transaction Summary
================================================================================
Install   1 Package
Upgrade  11 Packages

Total download size: 9.7 M
Is this ok [y/N]: 

甚至在忽略增强更新的同时安装安全和错误修复更新:

# dnf update --security --bugfix
================================================================================
 Package                      Arch     Version                  Repo       Size
================================================================================
Upgrading:
 audit-libs                   x86_64   3.0.5-1.fc34             updates   116 k
 avahi                        x86_64   0.8-14.fc34              updates   289 k
 avahi-libs                   x86_64   0.8-14.fc34              updates    68 k
...
 rpm-plugin-systemd-inhibit   x86_64   4.16.1.3-1.fc34          fedora     23 k
 shared-mime-info             x86_64   2.1-2.fc34               fedora    374 k
 sqlite                       x86_64   3.34.1-2.fc34            fedora    755 k

Transaction Summary
================================================================================
Install  11 Packages
Upgrade  45 Packages

Total download size: 32 M
Is this ok [y/N]: 

仅安装特定更新

您还可以选择仅安装具有特定 ID 的更新,例如通过使用 –advisory 并指定 ID 来安装用于 avahi 的 FEDORA-2021-74ebf2f06f:

# dnf update --advisory=FEDORA-2021-74ebf2f06f
================================================================================
 Package             Architecture    Version             Repository        Size
================================================================================
Upgrading:
 avahi               x86_64          0.8-14.fc34         updates          289 k
 avahi-libs          x86_64          0.8-14.fc34         updates           68 k

Transaction Summary
================================================================================
Upgrade  2 Packages

Total download size: 356 k
Is this ok [y/N]: 

甚至是多次更新,带有 ‐‐咨询:

# dnf update --advisories=FEDORA-2021-74ebf2f06f,FEDORA-2021-83fdddca0f
================================================================================
 Package            Architecture   Version                Repository       Size
================================================================================
Upgrading:
 avahi              x86_64         0.8-14.fc34            updates         289 k
 avahi-libs         x86_64         0.8-14.fc34            updates          68 k
 curl               x86_64         7.76.1-7.fc34          updates         297 k
 libcurl            x86_64         7.76.1-7.fc34          updates         284 k

Transaction Summary
================================================================================
Upgrade  4 Packages

Total download size: 937 k
Is this ok [y/N]: 

结论

最后,这一切都取决于您个人更喜欢如何管理您的更新。 但是,无论出于何种原因,如果您只需要安装安全更新,那么这些过滤器肯定会派上用场!