当前位置: 首页 > news >正文

dnf命令详解

DNF(Dandified YUM)命令详解
DNF 是 Rocky Linux、Fedora、CentOS 8+ 等系统的默认包管理工具,作为 YUM 的升级版,提供更快的依赖解析和更友好的交互。以下是 DNF 的核心用法及常见场景:

一、基础语法

dnf [选项] <子命令> [软件包/参数]

二、常用子命令与功能

1. 软件包管理
命令说明
dnf install <包名>安装指定软件包(支持通配符,如 nginx*
dnf remove <包名>卸载软件包(同时删除依赖)
dnf reinstall <包名>重新安装软件包
dnf update更新所有可升级的软件包
dnf update <包名>更新指定软件包
dnf check-update检查可更新的软件包(不执行更新)
2. 查询与搜索
命令说明
dnf search <关键词>按名称或描述搜索软件包
dnf list [installed|all]列出仓库中所有/已安装的软件包
dnf info <包名>显示软件包详细信息(版本、依赖、仓库来源等)
dnf provides <文件路径>查找提供指定文件或命令的软件包
dnf repoquery <选项>高级查询(如列出软件包文件:repoquery -l nginx
3. 仓库管理
命令说明
dnf repolist [all]列出已启用的仓库(加 all 显示全部)
dnf config-manager --add-repo <URL>添加新仓库(如 Docker 官方源)
dnf config-manager --disable <仓库ID>禁用指定仓库
dnf config-manager --enable <仓库ID>启用指定仓库
4. 系统维护
命令说明
dnf clean all清理下载的软件包和元数据缓存
dnf autoremove删除不再需要的依赖包
dnf history [undo <事务ID>]查看操作历史或回滚指定事务(如 dnf history undo 5
dnf group list列出软件包组
dnf group install "开发工具"安装软件包组(如开发环境)
5. 高级功能
命令说明
dnf module list列出可用模块(如 PHP、MySQL 的不同版本)
dnf module enable <模块>启用模块(如 dnf module enable mysql:8.0
dnf downgrade <包名>降级软件包到旧版本
dnf --enablerepo=<仓库ID>临时启用某个仓库执行操作(如 dnf --enablerepo=epel install htop

三、配置优化

1. 国内镜像加速

修改仓库配置文件(如 /etc/yum.repos.d/Rocky-*.repo)替换为阿里云或清华源:

sudo sed -i 's|baseurl=.*rocky|baseurl=https://mirrors.aliyun.com/rocky|g' /etc/yum.repos.d/Rocky-*.repo
sudo dnf clean all && sudo dnf makecache
2. 配置文件路径

主配置/etc/dnf/dnf.conf

可调整并行下载数、超时时间等参数,例如:

[main]
max_parallel_downloads=10
timeout=30

四、常见问题与解决

1. 依赖冲突
  • 现象:安装时提示依赖不兼容。

  • 解决

    # 查看冲突详情
    dnf deplist <包名>
    # 手动安装指定版本依赖
    dnf install <依赖包名>-<版本>
2. GPG 密钥验证失败
  • 现象GPG key retrieval failed

  • 解决:手动导入密钥或跳过验证(不推荐):

    sudo rpm --import <密钥URL>  # 例如:https://nginx.org/keys/nginx_signing.key
    # 或临时跳过
    dnf install --nogpgcheck <包名>
3. 网络问题
  • 现象:无法连接仓库。

  • 解决

    • 检查网络配置:ping mirrors.aliyun.com

    • 禁用防火墙或 SELinux(临时):

      sudo systemctl stop firewalld
      sudo setenforce 0

五、实用示例

1. 安装 Nginx 并启用服务
sudo dnf install nginx
sudo systemctl enable --now nginx
2. 查询文件所属包
dnf provides /usr/sbin/nginx
3. 回滚操作
# 查看历史记录
dnf history
# 回滚事务 ID 为 10 的操作
dnf history undo 10

六、总结

场景推荐命令
快速安装软件dnf install <包名>
清理系统垃圾dnf autoremove && dnf clean all
安全更新系统dnf update --security
调试依赖问题dnf repoquery --requires <包名>

掌握 DNF 命令可高效管理系统软件,建议结合 man dnf 查阅完整手册。

相关文章:

  • hackmyvm-lookup
  • Linux中查找标准库函数的定义
  • MongoDB未授权访问漏洞
  • 个人博客系统 --- 测试报告
  • 【js逆向】某酒店模拟登录
  • 【蓝桥杯】真题 2386染色时间 (优先队列BFS)
  • 智慧教育云平台支持下的学生自主学习能力培养策略研究
  • dfs刷题矩阵搜索问题
  • 深入理解Java虚拟机(学习笔记)
  • 开源视频剪辑工具,无损编辑更高效
  • 车道保持中车道线识别
  • XSS 攻击向量与绕过技巧
  • OpenCV的基本用法全解析
  • 【深度学习入门_机器学习理论】梯度提升决策树(GBDT)
  • C语言-状态模式详解与实践 - OTA升级状态机
  • 计算机网络层超全解析:从IP协议到路由算法
  • .gitignore使用指南
  • el-select 可搜索下拉框 在ios、ipad 无法唤出键盘,造成无法输入
  • Nginx请求头Hos头攻击
  • 【YOLO项目】毕设大作业之车道线检测
  • 辽宁男篮被横扫这一晚,中国篮球的一个时代落幕了
  • 戴上XR头盔,五一假期在上海也能体验“登陆月球”
  • 当农民跨进流动的世界|劳动者的书信①
  • 屠呦呦当选美国国家科学院外籍院士
  • 启程回家!神十九轨道舱与返回舱成功分离
  • 夜读丨跷脚牛肉乐翘脚