惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
C
Check Point Blog
J
Java Code Geeks
腾讯CDC
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
罗磊的独立博客
Last Week in AI
Last Week in AI
B
Blog
IT之家
IT之家
S
SegmentFault 最新的问题
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
博客园 - 聂微东
U
Unit 42
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
MyScale Blog
MyScale Blog

杜老师说

Python 脚本自动化实战:让重复工作一键完成 Web 应用常见漏洞与防御:OWASP Top 10 实战讲解 Home Assistant 智能家居搭建:从零打造自动化生活 从零理解 TCP/IP 协议栈:网络世界的通用语言 运维工程师面试全攻略:从简历到 Offer 的完整指南 免费学习平台精选:这 15 个网站让你省下几万培训费 开发者必备工具集:这 30 个工具让我的效率提升了 300% WordPress 性能优化实战:从 5 秒加载到 1 秒的蜕变 Hugo 静态博客从零部署:5 分钟搭建自己的个人网站 图床服务故障修复公告 周末的 3 种过法 居家办公 5 个减少分心的动作 给猫拍照的 3 个小技巧 通勤路上听播客 vs 听音乐的 2 个选择 会议室投影仪连不上的 3 个排查 雨天出差的 3 件必备 桌面零食收纳的 2 个分区 演示前一晚的 2 个检查清单 培训讲师的 PPT 怎么"听完" 出差住酒店插座的 3 个用法 培训笔记只记关键字的 3 个好处 通勤最后 10 分钟的"减速"技巧 两人吃外卖的 2 个小默契 深夜吃夜宵的 3 个节制技巧 橘猫经常跳上书桌的 3 个应对 居家办公桌前的 4 个微习惯 培训归来:把新命令收纳到 shell 的命名约定 高铁出差路上的电源与网络 3 个 fallback 夏季骑行通勤的 3 个小习惯 推荐酷鸭数据主机
DEB 和 RPM 有什么区别
Teacher Du · 2025-12-03 · via 杜老师说

在 Linux 系统中,软件的安装和管理通常依赖于软件包(Package),而 .deb 和 .rpm 是两种最主流的软件包格式。它们分别服务于不同的 Linux 发行版生态系统,不仅文件后缀不同,所使用的工具链、依赖管理方式、系统集成方式等方面也各有特点。本文将从多个角度对这两种格式进行深入解析。

基础定义

格式全称主要用途
.debDebian Binary Package用于 Debian 及其衍生系统
.rpmRPM Package Manager用于 Red Hat 等及其衍生系统

软件包管理工具的不同

操作.deb 系列.rpm 系列
低层包管理器dpkgrpm
高层包管理器apt、apt-get、gdebiyum、dnf、zypper
自动解决依赖apt 系列具备强大的自动依赖解决能力yum / dnf 支持自动依赖解析
安装命令示例sudo apt install ./xxx.deb ; sudo dpkg -i xxx.debsudo yum install xxx.rpm ; sudo rpm -ivh xxx.rpm

软件包内部结构差异

尽管 .deb 和 .rpm 都包含软件的可执行文件、元信息、安装脚本等,但它们的打包方式和控制文件结构并不相同:

1
2
3
4
5
6
7
8
9
10
11
.deb 软件包结构:
.deb 文件实际上是一个 ar 档案,包含:
├── control.tar.gz → 控制信息(如版本、依赖、脚本)
├── data.tar.gz → 软件内容(实际文件)
├── debian-binary → 版本信息(固定为2.0)
.rpm 软件包结构:
.rpm 文件是经过 CPIO 和 RPM 格式封装的结构,包含:
├── 包描述信息(名称、版本、架构等)
├── 安装/卸载脚本(%pre、%post、%preun、%postun)
├── 文件列表及路径
├── 安装数据(通过 CPIO 解包)

平台兼容性

.deb 和 .rpm 是彼此不兼容的,不同包管理器和元数据结构使它们无法直接在非原生系统中使用。但可以通过跨格式转换工具实现临时兼容;

注意:转换后的包可能在目标系统中运行异常,特别是涉及依赖项或系统级服务时。

系统集成差异

.deb 系列操作系统默认使用 systemd 或 sysvinit 管理服务,依赖包也多以 .deb 分发。

.rpm 系统通常更加倾向于企业级应用部署,具备更强的 SELinux、Firewalld 集成与限制管理。

此外,.rpm 包更早支持数字签名验证(GPG 签名),而 .deb 也已在 apt 中引入类似机制。

使用场景与生态对比

项目.deb 系列(如 Ubuntu、麒麟桌面、统信桌面).rpm 系列(如 openEuler、麒麟服务器、统信服务器)
使用人群个人用户、国产桌面操作系统用户居多企业级、服务器、运维自动化场景多见
系统更新频率快,偏向社区活跃发展稳定,重视长期支持(LTS)版本
支持工具apt, dpkgyum, dnf, rpm, zypper