首页/新闻资讯/正文详情

Linux软件包管理对比:apt、yum、dnf、pacman怎么选?

发布时间:2026/9/26 14:26:41 来源:云帆数科 栏目:资讯中心
Linux软件包管理对比:apt、yum、dnf、pacman怎么选?
刚装完一台 Ubuntu照着网上的教程敲yum install nginx结果提示 command not found换到 Rocky Linux 上同事又说别用 yum 了用 dnf听群里有人吹 Arch 的 pacman 一条命令全搞定。apt、yum、dnf、pacman 这四个名字天天挂在嘴边它们到底差在哪、新机器上该用哪个这篇一次说清。一、先分阵营deb 和 rpm 两大体系Linux 发行版再多软件包格式基本就两大家族外加 Arch 自己一套。阵营包格式底层工具上层命令代表发行版Debian 系.debdpkgapt / apt-getDebian、Ubuntu、Linux Mint、KaliRHEL 系.rpmrpmyum / dnfRHEL、CentOS、Rocky、Fedora、AlmaLinuxArch 系.pkg.tar.zstpacmanpacman底层上层合一Arch、Manjaro、EndeavourOS理解这个分层很关键dpkg 和 rpm 是底层负责把包文件解开、拷到对应位置、登记进本地数据库apt、yum、dnf 是上层负责联网找仓库、算依赖、自动把一串依赖包拉下来。平时九成操作你只碰上层命令但出问题时得知道底层还在那儿。二、四大工具速查表工具所属阵营仓库配置位置本地数据库特点aptDebian/Ubuntu/etc/apt/sources.list及sources.list.d//var/lib/dpkg/status生态最大文档最多yumRHEL/CentOS 7 及更早/etc/yum.repos.d/*.repo/var/lib/rpm/老牌兼容性好dnfRHEL 8、Fedora同 yum同 yumyum 的继任者依赖解析更快pacmanArch/etc/pacman.conf、/etc/pacman.d/mirrorlist/var/lib/pacman/极简、滚动更新Rocky Linux 8 开始默认用 dnfyum命令其实是 dnf 的软链接敲yum install照样能跑。CentOS 7 是最后一个把 yum 当主力的版本2024 年底 EOL 之后还在跑的机器不多了。三、aptDebian/Ubuntu 系Ubuntu 是国内服务器和开发者本机最常见的发行版apt 自然也是见面率最高的包管理器。语法格式apt[选项]子命令[包名]常用子命令命令作用sudo apt update刷新仓库索引装软件前必跑sudo apt upgrade升级所有可升级的包sudo apt install 包名安装包sudo apt remove 包名卸载但保留配置文件sudo apt purge 包名卸载并删掉配置apt search 关键词搜索包apt show 包名看包的详细信息apt list --installed列出已安装的包示例与预期输出先刷新索引再装 nginxsudoaptupdatesudoaptinstall-ynginxapt update的预期输出节选Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [118 kB] Fetched 118 kB in 2s (59.0 kB/s) Reading package lists... Done要分清apt update和apt upgrade前者只更新有哪些包、版本是多少的清单后者才真正下载安装。很多人新装系统直接apt install报Unable to locate package就是没先 update。四、yum 与 dnfRHEL 系CentOS 7 用 yumRocky 8/9、AlmaLinux 9、Fedora 全用 dnf。命令几乎一一对应把 yum 换成 dnf 就行。常用子命令命令作用sudo dnf install 包名安装sudo dnf remove 包名卸载sudo dnf update升级全部sudo dnf search 关键词搜索sudo dnf info 包名看详情dnf repolist列出已启用的仓库dnf list installed列已安装的包示例与预期输出sudodnfinstall-ynginx预期输出节选Last metadata expiration check: 0:14:22 ago on Wed 16 Sep 2026 02:30:15 PM. Dependencies resolved. Package Arch Version Repository Size Installing: nginx x86_64 1:1.20.1-14.el9 appstream 569 k Transaction Summary Install 1 Package Total download size: 569 k Installed size: 1.7 M ... Complete!dnf 比 yum 快主要靠的是 libsolv 这个用 C 写的依赖解析器装包时算依赖关系明显利索。日常手敲yum不报错但写脚本、写文档里建议直接用dnf。五、pacmanArch 系Arch 主打极简和滚动更新pacman 一个工具把底层和上层全包了。常用操作命令作用sudo pacman -Syu同步仓库并升级全部Arch 的日常更新sudo pacman -S 包名安装sudo pacman -Rns 包名卸载包及不再需要的依赖和配置pacman -Ss 关键词搜索远程仓库pacman -Qs 关键词搜索本地已装的包pacman -Q列出所有已装包示例与预期输出sudopacman-Snginx预期输出节选resolving dependencies... looking for conflicting packages... Packages (1): nginx-1.26.2-1 Total Download Size: 0.52 MiB Total Installed Size: 1.41 MiB :: Proceed with installation? [Y/n]Arch 不区分刷新索引和升级两个动作-Syu一条同时干。这也意味着 Arch 没有只升级个别包的温和策略常年跟着滚动走机器别太久不开机一跨几个月再-Syu容易碰上中间版本的依赖断点。六、常用操作一张对照表记不住每个工具的子命令按动作查这张表动作Debian/UbuntuRHEL 系Arch刷新索引apt updatednf check-update含在-Syu里装包apt installdnf installpacman -S卸包apt removednf removepacman -Rns升级全部apt upgradednf updatepacman -Syu搜包apt searchdnf searchpacman -Ss看详情apt showdnf infopacman -Si列已装apt list --installeddnf list installedpacman -Q清理孤儿依赖apt autoremovednf autoremovepaccache -r七、知识扩展包管理器到底在替你做什么不管哪套工具装一个软件的本质流程都一样读本地仓库索引找到包名对应的下载地址和版本解析依赖——A 依赖 BB 又依赖 C整条链一起拉下来下载包文件到本地缓存目录调用底层工具dpkg/rpm/pacman把文件解开二进制放/usr/bin库放/usr/lib配置放/etc把装了哪些文件、版本多少写进本地数据库有需要时跑包自带的安装后脚本比如建运行用户、注册 systemd 服务。搞懂这六步两个常见困惑就有答案了。为什么装个软件经常顺带塞进来一堆东西因为第二步把整条依赖链都算上了apt install输出里那段 “The following additional packages will be installed” 就是在列这个。为什么卸软件要再跑一遍 autoremove因为 install 时拉进来的依赖在你卸主包时默认还留在系统里autoremove专门清理现在没人再依赖它的孤儿包。八、怎么选服务器跑生产跟发行版走就对了Ubuntu/Debian 用 aptRocky/RHEL 用 dnf别往上面硬装另一套包管理器——deb 和 rpm 混着装两套数据库各记各的依赖迟早乱套。想折腾、追新软件版本Arch 的 pacman 顺手AUR 仓库几乎什么都找得到代价是你得自己扛滚动更新偶尔出的岔子。至于选哪个发行版做主力那是另一个话题不在这篇展开。

相关推荐

字节Xpert专家社区:凭知识做AI数据标注,实现知识变现全攻略
字节Xpert专家社区:凭知识做AI数据标注,实现知识变现全攻略

别看这两年大家对AI的讨论都在“替代人类工作”上,另一条平行线其实早就铺开了——大厂一边训练更强的模型,一边在疯狂补贴真人专家给模型“喂答案”。最近字节的Xpert专家社区又开放了新一期招募,方向很直接:凭知识变现&#xff… · 2026/9/26 14:26:41

缺氧地图 mod 开发:用 YAML 与 VSCode 配 TaoToken 的 worldgen 配置骨架
缺氧地图 mod 开发:用 YAML 与 VSCode 配 TaoToken 的 worldgen 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 14:26:41

三大框架玩转wterm Web终端:React、Vue 3与Svelte完全指南
三大框架玩转wterm Web终端:React、Vue 3与Svelte完全指南

三大框架玩转wterm Web终端:React、Vue 3与Svelte完全指南 【免费下载链接】wterm A terminal emulator for the web 项目地址: https://gitcode.com/gh_mirrors/wterm1/wterm wterm 是一个面向 Web 的终端模拟器(A terminal emulator for the we… · 2026/9/26 14:26:41

Qwerty Learner 配 TaoToken:为键盘工作者设计的单词记忆与英语肌肉记忆锻炼网页
Qwerty Learner 配 TaoToken:为键盘工作者设计的单词记忆与英语肌肉记忆锻炼网页

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 15:00:50

Moltbot(OpenClaw)与扣子商店技能对比:TaoToken 统一 Key 接入配置实战
Moltbot(OpenClaw)与扣子商店技能对比:TaoToken 统一 Key 接入配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 15:00:50

DB2 V11.1安装实战:从下载到实例创建与Docker部署避坑指南
DB2 V11.1安装实战:从下载到实例创建与Docker部署避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 15:00:37

Atlas 300V 24G推理加速卡上运行YOLO:从概念到部署全解析
Atlas 300V 24G推理加速卡上运行YOLO:从概念到部署全解析

最近在好几个技术群里连续看到同一个问题:“Atlas 300V 24G是运算加速卡吗?”“有没有人用Atlas部署过YOLO?”这俩问题其实是同一件事:很多人刚拿到昇腾推理卡,想把手里的目标检测任务跑起来,结果第一步就卡… · 2026/9/26 15:00:31

Python+OpenCV疲劳驾驶检测源码:EAR/MAR算法与工程避坑指南
Python+OpenCV疲劳驾驶检测源码:EAR/MAR算法与工程避坑指南

简介:这是一套面向计算机相关专业学生与项目实战学习者的疲劳驾驶检测完整项目包,基于Python与OpenCV实现,可直接用于毕业设计、课程设计或期末大作业。项目围绕人脸关键点定位与眼部状态分析展开,通过摄像头实时判断驾驶员疲劳程… · 2026/9/26 15:00:31

WinCC V16 ADODB连接SQL Server工业级实践指南
WinCC V16 ADODB连接SQL Server工业级实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 15:00:31

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码