首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件包管理:rpm/dpkg/yum/dnf 包管理工具及仓库配置

软件包管理:rpm/dpkg/yum/dnf 包管理工具及仓库配置

原创
作者头像
智维攻城狮
发布2025-09-07 12:13:47
发布2025-09-07 12:13:47
30800
代码可运行
举报
文章被收录于专栏:Linux运维Linux运维
运行总次数:0
代码可运行

软件包管理:rpm/dpkg/yum/dnf 包管理工具及仓库配置

前言

在 Linux 操作系统的日常运维与应用部署中,软件包管理是核心环节之一。它负责软件的安装、卸载、更新与依赖处理,直接影响系统的稳定性、安全性与运维效率。Linux 生态中存在两大主流软件包管理体系:以 RPM 为基础的红帽系(如 CentOS、RHEL、Fedora)和以 DEB 为基础的 Debian 系(如 Ubuntu、Debian)。其中,rpm与dpkg是底层包管理工具,专注于单个软件包的操作;而yum与dnf则是基于rpm的高级包管理器,通过仓库实现依赖自动解决与批量操作。本文将系统解析这四类工具的核心功能、使用场景与操作方法,并深入讲解仓库配置的关键步骤,为 Linux 运维人员提供全面的实践指南。

Linux 软件包管理的本质是将编译后的二进制文件、配置文件、文档等资源打包成标准化格式,同时记录软件的版本、依赖关系、安装路径等元数据,以便实现自动化的生命周期管理。根据包格式的不同,主流体系可分为两类:

  • RPM 体系:由红帽公司开发,包文件以.rpm为后缀,主要应用于 CentOS、Red Hat Enterprise Linux(RHEL)、Fedora、openSUSE 等发行版。该体系的底层工具为rpm,高级工具包括yum(Yellowdog Updater, Modified)和dnf(Dandified Yum)。
  • DEB 体系:由 Debian 项目开发,包文件以.deb为后缀,主要应用于 Ubuntu、Debian、Linux Mint 等发行版。该体系的底层工具为dpkg,高级工具包括apt(Advanced Package Tool)和apt-get。

两类体系的核心差异在于包格式与依赖处理逻辑,但目标一致:简化软件管理流程,降低运维复杂度。下文将重点聚焦rpm、dpkg、yum、dnf四类工具,从功能定位、常用命令到实战场景展开详细说明。

RPM(Red Hat Package Manager)

2.1 基本概念

  • 适用发行版:RHEL、CentOS、Fedora、openSUSE 等
  • 包格式.rpm
  • 特点:底层工具,不自动解决依赖,适合离线安装或特定场景。

2.2 常用命令

代码语言:javascript
代码运行次数:0
运行
复制
# 安装
rpm -ivh package.rpm
# 升级(无则安装)
rpm -Uvh package.rpm
# 查询已安装包
rpm -qa | grep 包名
# 查看包信息
rpm -qi 包名
# 卸载
rpm -e 包名
# 查询文件属于哪个包
rpm -qf /path/to/file

2.3 使用场景

  • 离线环境安装本地 .rpm
  • 检查包信息、文件归属
  • 配合 yum/dnf 进行底层调试

DPKG(Debian Package)

3.1 基本概念

  • 适用发行版:Debian、Ubuntu、Kali 等
  • 包格式.deb
  • 特点:底层工具,不自动解决依赖,APT 是其前端。

3.2 常用命令

代码语言:javascript
代码运行次数:0
运行
复制
# 安装
sudo dpkg -i package.deb
# 修复依赖
sudo apt-get install -f
# 查询已安装包
dpkg -l | grep 包名
# 查看包信息
dpkg -s 包名
# 卸载
sudo dpkg -r 包名
# 查询文件属于哪个包
dpkg -S /path/to/file

3.3 使用场景

  • 安装本地 .deb
  • 配合 apt 进行依赖管理
  • 检查包信息与文件归属

YUM(Yellowdog Updater, Modified)

4.1 基本概念

  • 适用发行版:RHEL/CentOS 7 及之前
  • 特点:基于 RPM,自动处理依赖,支持仓库管理。

4.2 常用命令

代码语言:javascript
代码运行次数:0
运行
复制
# 安装
sudo yum install 包名
# 卸载
sudo yum remove 包名
# 更新
sudo yum update
# 搜索
yum search 关键字
# 查看包信息
yum info 包名
# 清理缓存
yum clean all
# 生成缓存
yum makecache

4.3 仓库配置

仓库配置文件位于 /etc/yum.repos.d/*.repo,示例:

代码语言:javascript
代码运行次数:0
运行
复制
[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

修改后执行:

代码语言:javascript
代码运行次数:0
运行
复制
yum clean all && yum makecache

DNF(Dandified YUM)

5.1 基本概念

  • 适用发行版:RHEL/CentOS 8+、Fedora
  • 特点:YUM 的下一代版本,性能更好,依赖解析更快,支持插件。

5.2 常用命令

代码语言:javascript
代码运行次数:0
运行
复制
# 安装
sudo dnf install 包名
# 卸载
sudo dnf remove 包名
# 更新
sudo dnf update
# 搜索
dnf search 关键字
# 查看包信息
dnf info 包名
# 列出已安装包
dnf list installed
# 提供某文件的包
dnf provides /path/to/file

5.3 仓库配置

与 YUM 类似,配置文件位于 /etc/yum.repos.d/,示例:

代码语言:javascript
代码运行次数:0
运行
复制
[appstream]
name=CentOS-$releasever - AppStream
baseurl=http://mirror.centos.org/centos/$releasever/AppStream/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

更新缓存:

代码语言:javascript
代码运行次数:0
运行
复制
dnf clean all && dnf makecache

RPM / DPKG / YUM / DNF 对比表

工具

适用发行版

包格式

自动依赖处理

仓库支持

常用场景

rpm

RHEL/CentOS/Fedora

.rpm

离线安装、底层调试

dpkg

Debian/Ubuntu

.deb

离线安装、底层调试

yum

RHEL/CentOS 7-

.rpm

在线安装、更新

dnf

RHEL/CentOS 8+/Fedora

.rpm

在线安装、更新,性能更优


总结与建议

  • 离线环境:使用 rpmdpkg 安装本地包
  • 在线环境:优先使用 yum(CentOS 7-)或 dnf(CentOS 8+)
  • 仓库优化:建议配置国内镜像(如腾讯云、清华、中科大)以提升下载速度
  • 安全性:开启 gpgcheck 并导入官方 GPG key,防止包被篡改

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 软件包管理:rpm/dpkg/yum/dnf 包管理工具及仓库配置
    • 前言
    • RPM(Red Hat Package Manager)
      • 2.1 基本概念
      • 2.2 常用命令
      • 2.3 使用场景
    • DPKG(Debian Package)
      • 3.1 基本概念
      • 3.2 常用命令
      • 3.3 使用场景
    • YUM(Yellowdog Updater, Modified)
      • 4.1 基本概念
      • 4.2 常用命令
      • 4.3 仓库配置
    • DNF(Dandified YUM)
      • 5.1 基本概念
      • 5.2 常用命令
      • 5.3 仓库配置
    • RPM / DPKG / YUM / DNF 对比表
    • 总结与建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档