在 CentOS/RHEL 8 和 Fedora 中使用 DNF 管理软件包

CentOS 系统之前都是用 YUM 来进行包管理,升级到 CentOS 8 之后,开始使用 DNF 管理软件包(Dandified YUM,简称 DNF)。DNF 是知名的 Yellowdog Updater, Modified 包管理工具(也就是 YUM)的继承者。 DNF 和 YUM 都为 CentOS、RHEL、Fedora 和许多其他 Linux 发行版附带的 RPM 包管理器提供了一个用户友好的界面。作为 YUM 的继承者,DNF 具有多项增强功能,包括提高性能、更快的依赖项解析以及更完整的 API 文档。

DNF 已取代 YUM 作为大多数基于 RPM 的较新发行版的默认包管理器,包括:

  • RHEL 8(Red Hat Enterprise Linux)
  • CentOS 8 和其他 RHEL 衍生品(例如 AlmaLinux 8 和 Rocky Linux 8)
  • Fedora 22(及更高版本)

虽然 YUM 包管理器不再用于这些发行版,但 yum 命令在许多情况下仍然有效。大多数发行版将 yum 命令链接到 DNF 软件,并且由于 DNF 保持与 YUM 的大部分命令的兼容性,因此大多数命令仍然按预期运行。这就是为什么这些发行版的一些文档仍然引用 yum 命令来安装或更新软件的原因。

本文介绍在使用 CentOS 8 或 Fedora 服务器时最有可能遇到的 DNF 命令。

一、开始前的准备工作

1、准备一个 CentOS/RHEL 8 系统

在 CentOS/RHEL 8、AlmaLinux 8、Rocky Linux 8、Fedora 22 或这些发行版的更高版本上运行的系统。 也可以使用其他采用 APT 包管理器的 Linux 发行版。 如果还没有兼容的系统,可以参考《搬瓦工 KiwiVM 后台重装系统 Install new OS 和 Mount ISO 的区别》进行重装系统。

目前在这些系统中搬瓦工仅支持安装 CentOS 8,可以在重装系统的时候直接选择即可。

2、连接到搬瓦工 SSH

其次我们需要通过 SSH 连接到搬瓦工 VPS,然后才能进行一系列操作。

参考:《搬瓦工 Bandwagonhost 基础教程 – 新手拿到 VPS 后如何登录 SSH 教程》。

二、CentOS/RHEL 8 升级软件包

1、升级软件包

 sudo dnf upgrade

一般来说我们都会在安装软件之前运行一下这个命令来确保软件包是最新的。

2、列出可用更新的已安装软件包。此命令还会列出所有已过时的已安装软件包。

 sudo dnf check-update

3、升级特定包

 sudo dnf upgrade <package-name>

以下示例升级 Apache 包。

 sudo dnf upgrade httpd

三、CentOS/RHEL 8 安装软件包

1、安装软件包,比如 PHP:

 sudo dnf install php

2、重新安装软件包

 sudo dnf reinstall php

四、CentOS/RHEL 8 卸载软件包

1、卸载软件包。此示例卸载 MariaDB 包。

 sudo dnf remove mariadb-server

2、删除一个包以及与其一起安装的所有依赖包

 sudo dnf autoremove mariadb-server

在不指定包的情况下使用 autoremove 命令可识别并删除任何最初作为依赖项安装但不再需要的包。

 sudo dnf autoremove

3、删除重复包。以下命令删除安装的所有旧版本并重新安装最新版本。

 sudo dnf remove --duplicates

四、一些有用的 DNF 选项

DNF 在它的许多命令之间提供了许多共同的选项,下面的示例显示了这些选项中最常用的。

1、同时安装多个包,只需要提供以空格分隔的包列表。例如,以下命令在单个命令中安装 Apache、PHP 和 MariaDB:

 sudo dnf install httpd php mariadb-server

2、安装特定版本,在软件包名称后面加上 - 和所需的版本号。此示例安装 NeoVim 包的 0.4.4 版:

 sudo dnf intall neovim-0.4.4

要查看包的可用版本,使用 --showdupicates 选项和 list 命令:

 sudo dnf list neovim --showduplicates

3、自动确认,使用 -y 或 --assumeyes 标志自动对 DNF 出现的所有提示回答“是”,不需要再额外确认。

 sudo dnf install neovim -y

五、查找和搜索软件包

1、列举软件包

要列出 DNF 存储库中的所有包,可以使用 DNF 的 list 命令。但是,这会列出一个非常长的列表,因为一般来说软件非常多。下面提供一些筛选命令。

列举已安装的软件包:

sudo dnf list installed

列举过去一周添加到 DNF 存储库的包:

sudo dnf list recent

列出包的可用版本:

sudo dnf list git --showduplicates

2、搜索软件包

可以使用以下命令搜索 DNF 的可用包。比如搜索包含 git 的包:

 sudo dnf search git

同时搜索多个关键词:

 sudo dnf search version control

3、根据命令搜索包

如果想要根据提供的特定命令查找软件包,可以使用下面命令。此示例查找提供 jupyter-notebook 命令的包。

 sudo dnf provides jupyter-notebook

在这种情况下,搜索会出现 python3-notebook 包。

4、查看详细信息

获得有关软件包的其他详细信息:

 sudo dnf info python3-notebook

六、设置软件包自动更新

DNF 有一个补充包 DNF Automatic,它允许配置自动更新软件包。

1、安装 DNF Automatic

sudo dnf install dnf-automatic

2、编辑配置文件

使用文本编辑器打开位于以下位置的 DNF 自动配置文件:/etc/dnf/automatic.conf

下面给出了一些配置选项的示例值,建议根据实际需求更改这些值。

[commands]

#

upgrade_type=default

#

download_update=yes
# ...

apply_updates=yes

#

emit_via=motd

如果想将自动更新限制为仅影响系统安全的更新,可以将 upgrade_type 设置成 security。当 emit_via 设置为 motd 时, DNF Automatic 的报告将存储在 /etc/motd 文件中。

3、启动 DNF 自动计时器

sudo systemctl enable --now dnf-automatic.timer

4、验证计时器是否创建成功

sudo systemctl list-timers dnf-*

七、获取更多 DNF 帮助信息

最后,如果还有更多疑问,可以使用 -h 或者 --help 获取更多帮助:

sudo dnf -h

以及对于某个具体命令的帮助信息:

sudo dnf autoremove -h

下面整理一些搬瓦工推荐方案和新手教程。

搬瓦工推荐方案

搬瓦工实时库存:https://stock.bwg.net

温馨提醒 如果您有选择困难症,直接选中间的 CN2 GIA-E方案,季付 $49.99,多达 12 个机房任意切换
方案内存CPU硬盘流量/月带宽机房价格购买
CN2
(最便宜)
1GB1核20GB1TB1GbpsDC3 CN2
DC8 ZNET
$49.99/年购买
CN22GB1核40GB2TB1Gbps$52.99/半年
$99.99/年
购买
CN2 GIA-E
(最推荐)
1GB2核20GB1TB2.5GbpsDC6 CN2 GIA-E
DC9 CN2 GIA
日本软银 JPOS_1
联通荷兰 EUNL_9
$49.99/季度
$169.99/年
购买
CN2 GIA-E2GB3核40GB2TB2.5Gbps$89.99/季度
$299.99/年
购买
HK2GB2核40GB0.5TB1Gbps香港 CN2 GIA$89.99/月
$899.99/年
购买
HK4GB4核80GB1TB1Gbps$155.99/月
$1559.99/年
购买

选择建议:

  • 入门:洛杉矶 CN2 套餐,目前最便宜,可选 CN2 GT 机房,入门之选。
  • 推荐:洛杉矶 CN2 GIA-E 套餐,速度超快,可选机房多(DC6、DC9、日本软银、荷兰联通等),性价比最高。
  • 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。

搬瓦工新手教程

  1. 搬瓦工新手入门:《搬瓦工新手入门完全指南:方案推荐、机房选择、优惠码和购买教程(推荐阅读)
  2. 搬瓦工购买教程:《2021 年最新搬瓦工购买教程和支付宝支付教程
  3. 搬瓦工优惠码:BWH3HYATVBJW
  4. 搬瓦工补货通知:《欢迎订阅搬瓦工补货通知(补货提醒)/ 加入搬瓦工交流群
  5. 搬瓦工方案推荐:《搬瓦工高性价比 VPS 推荐:目前哪款方案最值得买?

未经允许不得转载:Bandwagonhost中文网 » 在 CentOS/RHEL 8 和 Fedora 中使用 DNF 管理软件包