news 2026/5/4 14:01:25

dnf包管理器使用指南与技巧总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
dnf包管理器使用指南与技巧总结

一、命令结构概览

基本语法

dnf [选项] <子命令> [参数]

二、核心子命令详解

1. 安装相关命令

install- 安装软件包
sudo dnf install package_name sudo dnf install package1 package2 package3 # 多个包 sudo dnf install package-1.0-1.el8.x86_64 # 指定版本 sudo dnf install @group_name # 安装组 sudo dnf install --allowerasing package # 允许删除冲突包

选项:

  • -y, --assumeyes:自动回答 yes

  • --nogpgcheck:跳过 GPG 签名检查

  • --skip-broken:跳过有依赖问题的包

  • --best:尝试安装最佳可用版本

  • --setopt=option=value:临时设置配置选项

reinstall- 重新安装
sudo dnf reinstall package_name sudo dnf reinstall package* # 使用通配符

2. 更新相关命令

update- 更新软件包
sudo dnf update # 更新所有包 sudo dnf update package_name # 更新指定包 sudo dnf update --security # 仅安全更新 sudo dnf update-minimal # 最小化更新 sudo dnf update --bugfix # 仅错误修复更新 sudo dnf update --enhancement # 仅功能增强更新
upgrade- 升级系统
sudo dnf upgrade # 升级所有包(类似 update) sudo dnf upgrade --refresh # 刷新元数据后升级 sudo dnf system-upgrade # 发行版升级(Fedora)

3. 移除相关命令

remove- 移除软件包
sudo dnf remove package_name sudo dnf remove package1 package2 sudo dnf remove --oldinstallonly # 移除旧的内核包
erase- 删除软件包(与 remove 同义)
sudo dnf erase package_name
autoremove- 自动移除
sudo dnf autoremove # 移除不需要的依赖 sudo dnf autoremove --dry-run # 模拟运行

4. 查询与搜索命令

search- 搜索软件包
dnf search keyword # 在包名和摘要中搜索 dnf search all keyword # 在所有字段搜索 dnf search --showduplicates keyword # 显示所有版本 dnf search -C keyword # 使用缓存搜索
list- 列出软件包
dnf list installed # 已安装的包 dnf list available # 可用的包 dnf list updates # 可更新的包 dnf list recent # 最近添加的包 dnf list extras # 外部安装的包 dnf list obsoletes # 已废弃的包 dnf list --showduplicates package # 显示所有版本
info- 显示包信息
dnf info package_name dnf info --available package # 仅显示可用包信息 dnf info --installed package # 仅显示已安装包信息
provides/whatprovides- 查找文件所属包
dnf provides /usr/bin/vim dnf provides "*/vim" dnf provides "MIME::Entity" # 查找 Perl 模块
repoquery- 仓库查询(强大工具)
dnf repoquery -l package # 列出包文件 dnf repoquery --requires package # 列出依赖 dnf repoquery --whatrequires package # 列出反向依赖 dnf repoquery --changelog package # 显示变更日志 dnf repoquery --srpm package # 查询源码包 dnf repoquery --duplicates # 列出重复包

5. 仓库管理命令

repolist- 列出仓库
dnf repolist # 启用的仓库 dnf repolist all # 所有仓库 dnf repolist enabled # 启用的仓库 dnf repolist disabled # 禁用的仓库 dnf repolist -v # 详细信息
repomanager- 仓库管理
dnf config-manager --add-repo URL # 添加仓库 dnf config-manager --enable repo_id # 启用仓库 dnf config-manager --disable repo_id # 禁用仓库 dnf config-manager --save # 保存设置
makecache- 创建缓存
sudo dnf makecache # 刷新所有缓存 sudo dnf makecache --timer # 定时刷新 sudo dnf makecache fast # 快速刷新

6. 依赖与验证命令

deplist- 依赖列表
dnf deplist package_name # 列出包依赖 dnf deplist --arch x86_64 package # 指定架构
check- 检查问题
sudo dnf check # 检查包数据库 sudo dnf check --dependencies # 检查依赖
verify- 验证包
sudo dnf verify package # 验证包完整性 sudo dnf verify all # 验证所有包

7. 历史与回滚命令

history- 操作历史
dnf history # 列出历史 dnf history list # 列出历史(同上) dnf history info 5 # 查看第5次操作详情 dnf history summary # 摘要信息 dnf history stats # 统计信息
历史操作
sudo dnf history undo 5 # 撤销第5次操作 sudo dnf history redo 5 # 重做第5次操作 sudo dnf history rollback 5 # 回滚到第5次操作前

8. 组管理命令

group- 软件组管理
dnf group list # 列出组 dnf group list hidden # 包括隐藏组 dnf group info "Development Tools" # 组信息 sudo dnf group install "Development Tools" sudo dnf group remove "Development Tools" sudo dnf group upgrade "Development Tools"

9. 环境管理命令

environment- 环境管理(RHEL/CentOS)
dnf environment list # 列出环境 dnf environment info "Minimal Install" sudo dnf group install environment "Minimal Install"

10. 模块管理命令(RHEL8+/CentOS8+)

module- 模块管理
dnf module list # 列出模块 dnf module info module_name # 模块信息 sudo dnf module enable module:stream # 启用模块流 sudo dnf module install module:stream/profile sudo dnf module remove module sudo dnf module reset module # 重置模块

11. 清理命令

clean- 清理缓存
sudo dnf clean all # 清理所有缓存 sudo dnf clean packages # 清理包缓存 sudo dnf clean metadata # 清理元数据 sudo dnf clean dbcache # 清理数据库缓存 sudo dnf clean expire-cache # 清理过期缓存

三、高级选项详解

1. 输出控制选项

dnf -q install package # 安静模式 dnf -v install package # 详细模式 dnf -d 5 install package # 调试级别5 dnf -e 0 install package # 错误级别0 dnf --setopt=tsflags=noscripts # 不运行脚本

2. 安装选项

dnf install --downloadonly package # 仅下载不安装 dnf install --downloaddir=/path # 指定下载目录 dnf install --exclude=package # 排除特定包 dnf install --obsoletes # 允许废弃包

3. 更新选项

dnf update --security --bugfix # 安全和错误修复 dnf update --advisory=ADVISORY_ID # 特定公告 dnf update --cve=CVE-2023-XXXXX # 特定CVE

4. 配置选项

dnf --config=/path/to/config.conf # 指定配置文件 dnf --installroot=/mnt/sysroot # 指定安装根目录 dnf --releasever=8 # 指定发行版版本

四、实用命令组合示例

1. 安全更新检查

# 检查安全更新但不安装 sudo dnf updateinfo list updates security sudo dnf updateinfo info security sudo dnf updateinfo list cves

2. 包比较

# 比较两个版本 dnf repoquery --changelog package | head -50 rpmdev-vercmp package-version1 package-version2

3. 批量操作

# 批量安装包(从文件读取) sudo dnf install $(cat packages.txt) # 批量删除 sudo dnf remove $(dnf repoquery --installed --qf "%{name}" | grep pattern)

4. 回滚特定包

# 查看包版本历史 rpm -q --changelog package_name | head -20 # 降级到特定版本 sudo dnf downgrade package-version

五、配置文件详解

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

[main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True best=False skip_if_unavailable=True retries=3 timeout=30 max_parallel_downloads=10 # 插件设置 plugins=1 pluginpath=/usr/lib/dnf/plugins # 仓库设置 cachedir=/var/cache/dnf keepcache=False

仓库配置:/etc/yum.repos.d/*.repo

[baseos] name=Fedora $releasever - BaseOS baseurl=https://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch metadata_expire=86400

六、性能优化技巧

1. 并行下载设置

# 临时设置 sudo dnf --setopt=max_parallel_downloads=20 install package # 永久设置 echo "max_parallel_downloads=20" >> /etc/dnf/dnf.conf

2. 使用本地镜像

# 生成镜像列表 sudo dnf install dnf-plugin-fastestmirror # 或手动指定镜像 sudo dnf --setopt=baseurl=http://local-mirror/path install

3. 缓存优化

# 保持包缓存 echo "keepcache=True" >> /etc/dnf/dnf.conf # 定期清理 sudo dnf clean expire-cache

七、故障排除命令

1. 依赖问题解决

# 强制解决依赖 sudo dnf --allowerasing install package # 跳过特定依赖 sudo dnf --skip-broken install package # 重建依赖数据库 sudo rpm --rebuilddb sudo dnf makecache

2. 锁定包版本

# 锁定包防止更新 sudo dnf versionlock add package sudo dnf versionlock list sudo dnf versionlock delete package

3. 检查冲突

# 检查包冲突 sudo dnf check # 验证包完整性 sudo rpm -Va # 查看问题详情 sudo dnf deplist problem_package

八、脚本编写示例

1. 自动化安装脚本

#!/bin/bash set -e # 更新系统 sudo dnf update -y # 安装基础包 sudo dnf install -y @base @development-tools # 安装特定软件 packages="vim git wget curl net-tools" sudo dnf install -y $packages # 清理缓存 sudo dnf clean all

2. 监控更新脚本

#!/bin/bash # 检查可用更新 updates=$(dnf check-update --quiet | wc -l) if [ $updates -gt 0 ]; then echo "有 $updates 个可用更新" dnf check-update --security else echo "系统已是最新" fi

九、注意事项

  1. 谨慎使用-y选项:生产环境中建议手动确认

  2. 备份重要数据:重要操作前建议备份

  3. 理解依赖关系:避免随意删除包

  4. 定期清理:防止缓存占用过多空间

  5. 验证源可靠性:只使用可信的仓库源

十、获取帮助

man dnf # 手册页 dnf --help # 简要帮助 dnf <command> --help # 子命令帮助 dnf help history # 特定子命令帮助 dnf shell # 进入交互式shell

这个详解涵盖了 dnf 的主要功能和高级用法,适用于从初学者到系统管理员的各个级别用户。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 10:40:20

2026年AI外呼系统趋势前瞻:云厂商入局如何重塑市场格局?

云计算巨头的入局&#xff0c;正将智能外呼从成本中心重塑为企业的价值增长引擎&#xff0c;这场技术融合的背后是180亿元市场的格局重构。2026年&#xff0c;中国智能外呼市场规模预计突破180亿元&#xff0c;年复合增长率保持在20% 以上。传统的批量拨号工具已升级为能够理解…

作者头像 李华
网站建设 2026/5/1 1:44:42

微软运行库电脑PC版下载_微软运行库全版本合集

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/5/1 6:42:48

导师推荐!专科生必用8款一键生成论文工具TOP8测评

导师推荐&#xff01;专科生必用8款一键生成论文工具TOP8测评 2026年专科生论文写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着高校教育的不断深化&#xff0c;专科生在学术写作中的需求日益增长。然而&#xff0c;面对繁重的课程任务与论文压力&#xff0c;许多学…

作者头像 李华
网站建设 2026/4/30 13:23:05

LiveNVR监控流媒体Onvif/RTSP功能-支持IPC、无人机等设备RTMP推流输出级联GB28181上级请求状态查看

LiveNVR支持IPC、无人机等设备RTMP推流转码分发大疆无人机花屏大疆无人机推流花屏完美解决方案同时支持转两个GB28181输出如何查看上级请求状态1、无人机推流转国标2、获取RTMP推流地址2.1、RTMP推流地址格式2.2、推流地址示例2、设备RTMP推流3、配置拉转RTMP3.1、直播流地址格…

作者头像 李华