DNF代表Dandified YUM是基于RPM的Linux发行版的软件包管理器。它用于在Fedora / RHEL / CentOS操作系统中安装,更新和删除软件包。它是Fedora 22,CentOS8和RHEL8的默认软件包管理器。DNF是YUM的下一代版本,并打算在基于RPM的系统中替代YUM。与您在yum中发现的功能相比,DNF功能强大且功能强大。DNF使维护软件包组变得容易,并且能够自动解决依赖性问题。
在本教程中,我们将说明如何在CentOS 8上使用DNF管理软件包。
要求
- 运行CentOS的服务器8。
- 为您的服务器设置了root密码。
安装DNF
默认情况下,DNF已预先安装在CentOS 8操作系统中。如果未安装,则可以通过运行以下命令进行安装:
yum install dnf
接下来,您可以使用以下命令检查DNF的版本:
dnf --version
您应该看到以下输出:
4.0.9
安装时间:2019年10月4日星期五格林尼治标准时间dnf-0:4.0.9.2-5.el8.noarch
内置:CentOS Buildsys < bugs@centos.org >在格林尼治标准时间2019年5月13日星期一
安装时间:2019年10月4日星期五格林尼治标准时间rpm-0:4.14.2-9.el8.x86_64
内置:CentOS Buildsys < bugs@centos.org >在格林尼治标准时间2019年5月11日星期六
列出已安装和可用的软件包
您可以使用以下命令列出系统上所有已安装的软件包:
dnf list installed
您应该在以下输出中看到所有已安装的软件包:
已安装的套件
NetworkManager.x86_64 1:1.14.0-14.el8 @anaconda
NetworkManager-config-server.noarch 1:1.14.0-14.el8 @anaconda
NetworkManager-libnm.x86_64 1:1.14.0-14.el8 @anaconda
NetworkManager-team.x86_64 1:1.14.0-14.el8 @anaconda
NetworkManager-tui.x86_64 1:1.14.0-14.el8 @anaconda
PackageKit.x86_64 1.1.12-2.el8 @AppStream
PackageKit-glib.x86_64 1.1.12-2.el8 @AppStream
acl.x86_64 2.2.53-1.el8 @anaconda
adcli.x86_64 0.8.2-2.el8 @anaconda
at.x86_64 3.1.20-11.el8 @anaconda
attr.x86_64 2.4.48-3.el8 @anaconda
audit.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda
audit-libs.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda
authselect.x86_64 1.0-13.el8 @anaconda
authselect-compat.x86_64 1.0-13.el8 @AppStream
authselect-libs.x86_64 1.0-13.el8 @anaconda
avahi-libs.x86_64 0.7-19.el8 @anaconda
basesystem.noarch 11-5.el8 @anaconda
您还可以使用以下命令列出所有已安装和可用的软件包:
dnf list
您应该看到以下输出:
上次元数据到期检查:2019年10月4日(星期五)美国东部时间4天22:47:10之前。
已安装的套件
NetworkManager.x86_64 1:1.14.0-14.el8 @anaconda
NetworkManager-config-server.noarch 1:1.14.0-14.el8 @anaconda
NetworkManager-libnm.x86_64 1:1.14.0-14.el8 @anaconda
NetworkManager-team.x86_64 1:1.14.0-14.el8 @anaconda
NetworkManager-tui.x86_64 1:1.14.0-14.el8 @anaconda
PackageKit.x86_64 1.1.12-2.el8 @AppStream
PackageKit-glib.x86_64 1.1.12-2.el8 @AppStream
acl.x86_64 2.2.53-1.el8 @anaconda
adcli.x86_64 0.8.2-2.el8 @anaconda
at.x86_64 3.1.20-11.el8 @anaconda
attr.x86_64 2.4.48-3.el8 @anaconda
audit.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda
audit-libs.x86_64 3.0-0.10.20180831git0047a6c.el8 @anaconda
authselect.x86_64 1.0-13.el8 @anaconda
authselect-compat.x86_64 1.0-13.el8 @AppStream
authselect-libs.x86_64 1.0-13.el8 @anaconda
avahi-libs.x86_64 0.7-19.el8 @anaconda
:
:
您还可以使用以下命令仅列出可用的软件包:
dnf list available
您应该看到以下输出:
上次元数据到期检查:2019年10月4日星期五22:48:21前(美国东部夏令时间)。
可用包装
BackupPC.src 4.3.1-2.el8 epel源
BackupPC.x86_64 4.3.1-2.el8 epel
BackupPC-XS.src 0.59-3.el8 epel源
BackupPC-XS.x86_64 0.59-3.el8 epel
BackupPC-XS-debuginfo.x86_64 0.59-3.el8 epel-debuginfo
BackupPC-XS-debugsource.x86_64 0.59-3.el8 epel-debuginfo
BackupPC-debuginfo.x86_64 4.3.1-2.el8 epel-debuginfo
BackupPC-debugsource.x86_64 4.3.1-2.el8 epel-debuginfo
CGSI-gSOAP.src 1.3.11-7.el8 epel源
CGSI-gSOAP.x86_64 1.3.11-7.el8 epel
CGSI-gSOAP-debuginfo.x86_64 1.3.11-7.el8 epel-debuginfo
CGSI-gSOAP-debugsource.x86_64 1.3.11-7.el8 epel-debuginfo
CGSI-gSOAP-devel.x86_64 1.3.11-7.el8 epel
搜索并安装软件包
您可以使用以下命令搜索要安装的任何软件包:
dnf search httpd
您应该看到以下输出:
================================================== =======名称完全匹配:httpd ===================================== ===================
httpd.x86_64:Apache HTTP服务器
================================================== ======名称和摘要匹配:httpd ===================================== ==================
centos-logos-httpd.noarch:httpd使用的与CentOS相关的图标和图片
keycloak-httpd-client-install.noarch:用于将Apache HTTPD配置为Keycloak客户端的工具
python3-keycloak-httpd-client-install.noarch:用于将Apache HTTPD配置为Keycloak客户端的工具
================================================== ===========名称匹配:httpd ================================== =========================
httpd-devel.x86_64:Apache HTTP服务器的开发接口
httpd-tools.x86_64:与Apache HTTP Server一起使用的工具
httpd-manual.noarch:Apache HTTP服务器的文档
libmicrohttpd.i686:用于在应用程序中嵌入Web服务器的轻量级库
libmicrohttpd.x86_64:用于在应用程序中嵌入Web服务器的轻量级库
httpd-filesystem.noarch:Apache HTTP服务器的基本目录布局
================================================== =========摘要匹配:httpd ===================================== =======================
mod_dav_svn.x86_64:Subversion服务器的Apache httpd模块
mod_auth_mellon.x86_64:Apache Httpd服务器的SAML 2.0身份验证模块
您现在可以使用以下命令安装httpd软件包:
dnf install httpd
要重新安装软件包httpd,请运行以下命令:
dnf reinstall httpd
在某些情况下,您将需要下载软件包而不安装它们。您可以使用以下命令下载特定的软件包:
dnf download httpd
您还可以使用以下命令查看httpd软件包的详细信息:
dnf info httpd
您应该获得以下输出:
上次元数据到期检查:2019年10月9日星期三0:01:02前EDT。
可用包装
名称:httpd
版本:2.4.37
发行版:11.module_el8.0.0 + 172 + 85fc1f40
拱门:x86_64
大小:1.7 M
来源:httpd-2.4.37-11.module_el8.0.0 + 172 + 85fc1f40.src.rpm
回购:AppStream
摘要:Apache HTTP服务器
网址:https://httpd.apache.org/
许可:ASL 2.0
描述:Apache HTTP Server是功能强大,高效且可扩展的
: 网络服务器。
更新系统软件包
首先,您可以使用以下命令检查系统上所有系统软件包的更新:
dnf check-update
您应该获得以下输出:
上次元数据到期检查:2019年10月9日星期三0:00:10前(美国东部时间)。
bind-export-libs.x86_64 32:9.11.4-17.P2.el8_0.1 BaseOS
bind-libs.x86_64 32:9.11.4-17.P2.el8_0.1 AppStream
bind-libs-lite.x86_64 32:9.11.4-17.P2.el8_0.1 AppStream
bind-license.noarch 32:9.11.4-17.P2.el8_0.1 AppStream
bind-utils.x86_64 32:9.11.4-17.P2.el8_0.1 AppStream
bpftool.x86_64 4.18.0-80.7.1.el8_0 BaseOS
cockpit.x86_64 185.1-1.el8_0 BaseOS
cockpit-bridge.x86_64 185.1-1.el8_0 BaseOS
cockpit-system.noarch 185.1-1.el8_0 BaseOS
cockpit-ws.x86_64 185.1-1.el8_0 BaseOS
epel-release.noarch 8-6.el8 epel
epel-release.src 8-6.el8 epel源
iptables.x86_64 1.8.2-9.el8_0.1 BaseOS
iptables-ebtables.x86_64 1.8.2-9.el8_0.1 BaseOS
iptables-libs.x86_64 1.8.2-9.el8_0.1 BaseOS
kernel.x86_64 4.18.0-80.7.1.el8_0 BaseOS
kernel-core.x86_64 4.18.0-80.7.1.el8_0 BaseOS
kernel-modules.x86_64 4.18.0-80.7.1.el8_0 BaseOS
kernel-tools.x86_64 4.18.0-80.7.1.el8_0 BaseOS
kernel-tools-libs.x86_64 4.18.0-80.7.1.el8_0 BaseOS
现在,您可以使用以下命令更新系统中安装的所有软件包:
dnf update
要更新特定的软件包,请运行以下命令:
dnf update httpd
列出并安装组软件包
您可以使用以下命令列出所有组软件包:
dnf grouplist
您应该获得以下列表:
上次元数据到期检查:2019年10月9日星期三0:03:42前(美国东部夏令时间)。
可用环境组:
带有GUI的服务器
最小安装
工作站
KDE等离子工作区
虚拟主机
自定义操作系统
安装的环境组:
服务器
已安装的组:
集装箱管理
无头管理
可用的组:
.NET核心开发
RPM开发工具
智能卡支持
开发工具
图形管理工具
旧版UNIX兼容性
网络服务器
科学支持
安全工具
系统工具
Fedora包装器
现在,使用以下命令安装特定的组软件包:
dnf groupinstall 'System Tools'
您还可以使用以下命令更新组软件包:
dnf groupupdate 'System Tools'
列出资料库
您可以使用以下命令列出所有存储库:
dnf repolist all
您应该看到以下输出:
最近的元数据到期检查:2019年10月9日星期三0:10:39前(美国东部时间)。
回购ID回购名称状态
AppStream CentOS-8-已启用AppStream:4,928
AppStream源CentOS-8-AppStream源已禁用
BaseOS CentOS-8-已启用基础:2,713
BaseOS源CentOS-8-已禁用BaseOS源
PowerTools CentOS-8-禁用PowerTools
base-debuginfo CentOS-8-禁用Debuginfo
c8-media-AppStream CentOS-AppStream-8-禁用媒体
c8-media-BaseOS CentOS-BaseOS-8-禁用媒体
centosplus CentOS-8-Plus已禁用
centosplus-source CentOS-8-禁用附加源
cr CentOS-8-cr已禁用
* epel适用于Enterprise Linux 8的额外软件包-已启用x86_64:1,816
*用于企业Linux 8的* epel-debuginfo Extra软件包-x86_64-已启用调试:1,187
适用于Enterprise Linux 8的epel-playground额外软件包-Playground-x86_64已禁用
适用于Enterprise Linux 8的epel-playground-debuginfo额外软件包-操场-x86_64-调试已禁用
适用于Enterprise Linux 8的epel-playground-source额外软件包-Playground-x86_64-禁用源
*适用于Enterprise Linux 8的epel源额外软件包-x86_64-已启用源:792
*对企业Linux 8的额外软件包进行epel-testing-测试-已启用x86_64:538
* epel-testing-debuginfo适用于Enterprise Linux 8的额外软件包-测试-x86_64-启用调试:347
* epel-testing-source适用于Enterprise Linux 8的额外软件包-测试-x86_64-已启用源:216
CentOS-8附加功能-启用附加功能:3
extras-source CentOS-8-禁用附加源
快速通道CentOS-8-快速通道已禁用
现在,使用以下命令仅列出系统上已启用的存储库:
dnf repolist
您应该看到以下输出:
上次元数据到期检查:2019年10月9日星期三0:12:14前美国东部时间(EDT)。
回购ID回购名称状态
AppStream CentOS-8-AppStream 4,928
BaseOS CentOS-8-基础2,713
* epel适用于Enterprise Linux 8的额外软件包-x86_64 1,816
*用于企业Linux 8的* epel-debuginfo额外软件包-x86_64-调试1,187
*适用于Enterprise Linux 8的epel源额外软件包-x86_64-源792
*对企业Linux 8的额外软件包进行epel-testing-测试-x86_64 538
* epel-testing-debuginfo适用于企业Linux 8的额外软件包-测试-x86_64-调试347
* epel-testing-source适用于Enterprise Linux 8的额外软件包-测试-x86_64-源216
附加功能CentOS-8-附加功能3
删除包
您可以使用以下命令从系统中删除所有不需要的软件包:
dnf remove httpd
接下来,通过运行以下命令,删除与软件包httpd一起安装的不需要的依赖项:
dnf autoremove
您可以使用以下命令清除所有缓存的软件包:
dnf clean all
您还可以使用以下命令删除组软件包:
dnf groupremove 'System Tools'
结论
在上面的教程中,我们学习了如何在CentOS 8上使用DNF命令管理软件包。如果您有任何问题,请随时问我。