Linux dnf 包管理工具使用教程

简介

dnf 是基于 Red Hat Linux 发行版的下一代包管理工具,它代替 yum 提供更好的性能、更好的依赖处理和更好的模块化架构。

基础语法

shell 复制代码
dnf [options] [command] [package]

常用命令用法

更新元数据缓存
shell 复制代码
sudo dnf check-update

# 检查已安装的包是否有可用的更新
更新所有安装的包到最新的版本
shell 复制代码
sudo dnf update
更新所有安装的包到最新的版本且移除过时的包
shell 复制代码
sudo dnf upgrade
安装指定的包
shell 复制代码
sudo dnf install <package_name>
安装多个包
shell 复制代码
sudo dnf install <package1> <package2>
安装指定的包版本
shell 复制代码
sudo dnf install <package_name-version>
移除指定的包
shell 复制代码
sudo dnf remove <package_name>
移除包和它未使用的依赖包
shell 复制代码
sudo dnf autoremove
通过关键词搜索指定的包
shell 复制代码
dnf search <keyword>
显示包的详细信息
shell 复制代码
dnf info <package_name>
列出所有可用的包组
shell 复制代码
dnf group list
安装一组包
shell 复制代码
sudo dnf group install "<group_name>"
移除一组包
shell 复制代码
sudo dnf group remove "<group_name>"
列出所有仓库源
shell 复制代码
dnf repolist
启用指定的仓库
shell 复制代码
sudo dnf config-manager --set-enabled <repo_name>
禁用指定的仓库
shell 复制代码
sudo dnf config-manager --set-disabled <repo_name>
清除所有缓存的数据
shell 复制代码
sudo dnf clean all
仅清除过期的缓存数据
shell 复制代码
sudo dnf clean expire-cache
列出所有已安装的包
shell 复制代码
dnf list installed
列出所有可用的包
shell 复制代码
dnf list available
列出指定的已安装的包
shell 复制代码
dnf list <package_name>
包降级到上一个版本
shell 复制代码
sudo dnf downgrade <package_name>
查看包操作的历史记录
shell 复制代码
dnf history
撤销指定的操作
shell 复制代码
sudo dnf history undo <transaction_id>
重做指定的操作
shell 复制代码
sudo dnf history redo <transaction_id>

配置文件

dnf 主配置文件在 /etc/dnf/dnf.conf

示例配置如下:

shell 复制代码
[main]
gpgcheck=1 # 确保软件包使用 GPG 密钥签名
installonly_limit=3 # 确保软件包使用 GPG 密钥签名
clean_requirements_on_remove=True # 当删除包时,删除未使用的依赖项。

DNF 模块

模块提供多个软件包的版本

列出可用的模块
shell 复制代码
dnf module list
安装指定的模块
shell 复制代码
sudo dnf module install <module_name>
启用指定的模块
shell 复制代码
sudo dnf module enable <module_name>
禁用指定的模块
shell 复制代码
sudo dnf module disable <module_name>

DNF 插件

DNF 支持插件扩展额外的功能,如:

  • dnf-plugins-core:提供如 config-manager 的工具的插件

  • dnf-plugin-subscription-manager:管理 Red Hat 订阅

安装插件

shell 复制代码
sudo dnf install dnf-plugins-core

高级用法

并行下载包

在配置文件 /etc/dnf/dnf.conf 中添加如下配置:

ini 复制代码
max_parallel_downloads=5
锁定包版本阻止更新
shell 复制代码
sudo dnf versionlock add <package_name>
解除锁定包版本
shell 复制代码
sudo dnf versionlock delete <package_name>
相关推荐
名字还没想好☜5 小时前
用 systemd 托管后台服务:Restart 策略、日志接管、资源限制与开机自启全踩一遍
运维·docker·kubernetes
乌恩大侠5 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
tangwangbi6 小时前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
蜀道山老天师6 小时前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
Mr.朱鹏6 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
草邦设计开发团队_媒体资源平台6 小时前
GEO 信源整合一键发布软文:从内容生产到流量获客的自动化实践
运维·人工智能·自动化
zhou lily6 小时前
非标自动化管理系统ERP如何选?2026年10大ERP软件对比分析
运维·自动化
mengge.cloud6 小时前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
云贝贝贝7 小时前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
小五传输7 小时前
FTP替代怎么做?医院文件安全传输选型与迁移指南
大数据·运维·安全