DNF 与 YUM 的区别详解:从 CentOS 7 到 CentOS 9 的演进

🍥 DNF 与 YUM 的区别详解:从 CentOS 7 到 CentOS 9 的演进

标签:CentOS、YUM、DNF、Linux 包管理、系统升级、兼容性
适用版本:CentOS 7、CentOS 8、CentOS 9


🧩 一、背景介绍

CentOS 中使用的包管理工具是 RedHat 系列系统的重要组成部分。随着系统版本升级,包管理器从 yum(CentOS 7)逐渐过渡到 dnf(CentOS 8 及之后版本)。


📌 二、YUM 与 DNF 对比表

对比项YUM(CentOS 7)DNF(CentOS 8/9)
基础语言Python 2Python 3
依赖解析自定义逻辑使用 libsolv,更高效
性能相对较慢更快、并发解析依赖
插件架构支持但较弱插件系统更现代、可扩展
API旧版 API新的 Python API 接口
命令兼容性经典命令 yum install保持兼容,也可用 dnf 命令
容器兼容性适合传统环境更适合云原生、容器打包
云原生支持无内建支持支持模块化、AppStream 等
替代命令yum 命令(真实为软链接)/usr/bin/yum → /usr/bin/dnf
默认包管理器CentOS 7CentOS 8 及以后

🧪 三、Shell 示例对比

🧱 CentOS 7 示例(基于 YUM)

# 安装 nginx
yum install -y nginx# 清理缓存
yum clean all# 生成缓存
yum makecache

🚀 CentOS 8/9 示例(基于 DNF)

# 安装 nginx
dnf install -y nginx# 清理缓存
dnf clean all# 生成缓存
dnf makecache

💡 补充:CentOS 8/9 中的 yum 命令其实是软链接

$ which yum
/usr/bin/yum$ ls -l /usr/bin/yum
lrwxrwxrwx 1 root root 5  /usr/bin/yum -> dnf

🧬 四、系统内核层变化(Kernel Support)

项目CentOS 7CentOS 8CentOS Stream 9 / RHEL9
默认内核版本3.10.x(较旧)4.18(较新)5.14+(更适合云原生与容器)
cgroups 支持cgroups v1默认 cgroups v1(可切换 v2)默认 cgroups v2
systemd 版本较老 systemdsystemd 更新完全支持 systemd + 容器化
云原生支持基础支持改进镜像管理、模块化仓库支持支持 Podman、Cloud-Init、OCI

🧭 五、兼容性建议

使用场景推荐版本包管理器建议
传统运维服务器CentOS 7使用 YUM
云主机 / 轻量部署CentOS 8使用 DNF
容器构建CentOS 9使用 DNF + 模块

🔚 六、小结

  • YUM 仍然可以在 CentOS 8/9 中使用,但其实就是 dnf 的别名。
  • DNF 在依赖管理、性能和容器友好性上远超 YUM
  • 对于脚本和运维工具,推荐使用 dnf,并检测系统版本以适配。

📦 七、判断系统版本的 Shell 兼容写法

# 判断系统版本选择合适的包管理器
if grep -q -i "release 7" /etc/redhat-release; thenPM="yum"
elsePM="dnf"
fi# 使用示例
$PM install -y wget curl

🔖 关注专栏《版本那些事》获取更多运维干货!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/93474.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mp核心功能

条件构造器mybatisPlus支持各种复杂的where条件, 满足日常的开发wrapper类就是条件构造器提供了很多子类条件构造器的用法:QueryWrapper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分UpdateWrapper和LambdaUpdateWrapper通常只有在set语句…

pcm,msd调制解调仿真

PCM(脉冲编码调制)和MSD(多符号差分)调制解调系统的MATLAB仿真代码。 PCM (脉冲编码调制) 仿真 %% PCM调制解调仿真 clear; clc; close all;% 参数设置 Fs 8000; % 采样频率 (Hz) t_duration 0.02; % 信号持续时间 (秒…

【网络安全】信息网络安全建设方案(WORD)

1.1 安全整体架构 1.2 安全建设拓扑 1.3 安全建设内容与目标 2.1 用户侧安全建设思路 2.2 用户侧安全建设拓扑 2.3 用户侧安全建设内容 2.3.1 PKI 升级改造 2.3.2 安全防护 2.3.3 安全检测 2.3.4 安全管理 3.1 跨网安全访问与交换平台安全建设思…

微服务 01

微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用。 (对应的是单体架构风格) 一、认识微服务 1、单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打…

20250726让荣品的PRO-RK3566开发板使用TF卡启动

20250726让荣品的PRO-RK3566开发板使用TF卡启动 2025/7/26 8:58缘起:需要升级 荣品的PRO-RK3566核心板的 底板上的FPGA程序。 由于没有使用RK809的电量计功能,板子一上电就会被关机!^_于是给生产线制作了一张TF卡/启动卡,插到底板…

Selenium使用指南

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 概述selenium是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等。官网地址为:相对于另外一款web自动化测试工具QT…

[机缘参悟-235]:通过AI人工升级网络的工作方式和特征理解人的思维方式

AI人工神经网络通过模拟生物神经元连接机制、构建层级化特征提取结构,并结合数据驱动的学习方式,为理解人类思维方式提供了技术参照框架,但其本质仍是基于统计的模式匹配,与人类意识层面的思维存在根本差异。以下从其工作方式、基…

【C#补全计划:类和对象(七)—— 重写虚方法】

一、virtual和override1. 问题引入:使用里氏替换原则时,使用父类容器装载子类对象,若不使用virtual和override而是使用new,当子类调用两个类共有的方法时,调用的是父类的方法而不是子类的方法:using System…

TCPIP之常用协议

一、TCPIP之网络支撑协议 1.ARP ARP是网络层协议,在同一广播域内,将IP地址解析成MAC地址. 1.1 无故ARP 请求型无故ARP 设备在网络中不管是自动获取ip地址还是手动配置ip地址,设备都会发送请求型无故ARP检查这个ip地址是否有重复的。 应…

网络之路24:VLAN基础实验

正文共:2345 字 18 图,预估阅读时间:3 分钟目录网络之路第一章:Windows系统中的网络0、序言1、Windows系统中的网络 1.1、桌面中的网卡 1.2、命令行中的网卡 1.3、路由表 1.4、家用路由器网络之路第二章:认识企业设备2…

基于Verilog的神经网络加速器设计

本设计实现了一个高效的神经网络加速器,专注于卷积神经网络(CNN)的核心计算功能。该设计具有以下创新点: 并行处理架构:同时处理多个卷积窗口,提高计算吞吐量 动态权重加载:支持运行时更新卷积核权重 流水线优化:卷积、激活、池化三级流水线设计 可配置参数:支持不同尺寸…

基于springboot的零食商城的设计与实现/零食销售系统的设计与实现

用户:注册,登录,商品信息,团购商品,公告资讯,后台管理,在线客服,购物车,个人中心管理员:登录,个人中心,用户管理,商品类型…

《剑指offer》-算法篇-位运算

题目二进制中“1”的个数代码实现二进制中“1”的个数题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:求“1”的个数等价于求n-1与n进行“与”运算后不等于0所需要的运算次数。注意:这里的整数可能…

项目上线中的跨域问题

本文将深入解析跨域问题的本质,并提供实用的解决方案。引言 跨域问题可以说是前端开发者的"老朋友"了,特别是在项目从开发环境迁移到生产环境时,这个问题更是频繁出现。许多开发者对跨域的理解停留在表面,导致在项目上线…

dubbo应用之3.0新特性(响应式编程)(2)

一、介绍 Dubbo 3.0 的响应式编程基于 Triple 协议和 Reactor/RxJava 实现,支持全链路异步非阻塞通信。它通过引入 Mono、Flux 等响应式类型,打通跨进程的数据流式传输,天然支持反压、限流等控制能力。相比传统基于 CompletableFuture 的异步方式,响应式编程更适用于高并发…

力扣-22.括号生成

题目链接 22.括号生成 class Solution {List<String> res new ArrayList<>();StringBuilder path new StringBuilder();void backtracking(int n, int left, int right) {if (left right 2 * n) {res.add(path.toString());return;}if (left < n) {path.a…

架构实战——互联网架构模板(“网络层”技术)

目录 一、负载均衡 1.1、DNS 1.1.1、DNS 负载均衡的优点 1.1.2、DNS 负载均衡的缺点 1.2、Nginx 、LVS 、F5 1.2.1、软件和硬件的区别 1.2.2、4 层和 7 层的区别 二、CDN 三、多机房 3.1、同城多机房 3.2、跨城多机房 3.3、跨国多机房 四、多中心 本文来源:极客时间vip课程笔记…

TCP/IP 网络编程面试题及解答

在Qt/C面试中&#xff0c;若涉及“熟悉TCP/IP网络编程”&#xff0c;面试官通常会结合TCP/IP协议基础、Qt网络编程框架&#xff08;如Qt Network模块&#xff09;、C网络编程实现以及实际场景问题来提问。以下是常见面试题及解答&#xff1a; 一、TCP/IP协议基础 1. TCP和UDP的…

unity开发中Hash、Queue、LinkedList简单介绍

在Unity游戏开发中&#xff0c;除了Dictionary和List外&#xff0c;以下三种数据结构能高效解决特定问题场景&#xff1a;1. HashSet<T>&#xff1a;闪电级存在性检查 核心特点&#xff1a;基于哈希表实现的高效集合&#xff0c;元素唯一且无视顺序 优势&#xff1a; O(1…

智慧园区:科技与生活的完美融合

在城市的喧嚣中&#xff0c;我们常常渴望一片宁静而充满活力的绿洲。如今&#xff0c;随着科技的飞速发展&#xff0c;智慧园区应运而生&#xff0c;它不仅满足了我们对美好生活的向往&#xff0c;更以其独特的魅力&#xff0c;成为现代城市中一道亮丽的风景线。今天&#xff0…