一、前言
绝大多数 Linux 新手入门,最先踩坑、最容易搞混的就是软件包管理。
不同 Linux 发行版包管理体系完全不通用。新手混用命令、不理解更新逻辑、不懂依赖机制、不清楚工具差异,导致 80% 的软件安装报错。
本文统一梳理 Apt / Yum / Dnf 三大主流包管理器,清晰区分 Debian 系 & RHEL 系核心差异,整理标准化实操命令、全网高频避坑点、依赖报错终极排查方案。新手看完,可彻底告别包管理乱象,适配开发、测试、生产全场景操作。
二、前置基础:Linux 两大发行版包管理体系区别
Linux 发行版数量繁多,但主流服务器系统仅分为两大包管理体系,只要分清体系,就能彻底避免命令混用错误。
1. 体系划分
- Debian 系(Ubuntu、Debian):核心工具
apt / dpkg,软件包格式 .deb - RHEL 系(CentOS7/8/9、Rocky、AlmaLinux):核心工具
yum / dnf,软件包格式 .rpm
2. 核心区别对照表(新手必看)
汇总日常所有高频操作,一套表格搞定跨系统命令差异,可直接收藏复用:
| | |
|---|
| | yum makecache / dnf makecache |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
三、Debian系(Ubuntu/Debian)Apt 完整实操
Apt 是 Ubuntu/Debian 官方标准包管理器,操作简洁、依赖处理完善,是桌面和服务器最常用的工具。
1. 核心基础命令(标准化写法)
严格区分「更新缓存」和「升级软件」,这是新手最容易混淆的知识点:
# 1. 更新软件源索引缓存(只刷新列表,不升级任何软件)
apt update
# 2. 升级所有已安装软件(不删除旧包、不变更系统核心组件)
apt upgrade
# 3. 完整系统版本升级(会增减依赖、升级内核、变更系统组件)
apt dist-upgrade
# 4. 安装软件
apt install 软件名
# 5. 普通卸载(保留配置文件)
apt remove 软件名
# 6. 彻底卸载(删除软件+配置文件)
apt purge 软件名
# 7. 搜索软件源中的软件
apt search 软件名
# 8. 查看软件详细信息
apt show 软件名
2. 本地 deb 包手动安装(dpkg)
部分软件无官方源,需要手动下载 .deb包安装,核心使用 dpkg 工具。
基础安装命令
# 本地安装deb包
dpkg -i 软件包名.deb
依赖缺失修复方案
dpkg 仅安装本地包,不会自动下载依赖,大概率出现依赖报错,修复命令:
# 自动修复缺失依赖、补全安装
apt -f install
手动安装高频坑
- 只执行
dpkg -i,不执行依赖修复,导致软件安装不完整、无法启动 - 下载的 deb 包系统架构不匹配(amd64/arm64)
3. Apt 新手高频致命坑
坑1:分不清 update 和 upgrade,盲目执行升级
apt update 只是更新软件源列表缓存,不会改动任何软件;apt upgrade 会真实升级所有已安装软件,生产环境不可随意执行。
坑2:随意使用 dist-upgrade 升级系统
apt dist-upgrade 会智能处理依赖变更,升级系统内核、核心组件,甚至删除旧依赖包。生产服务器随意执行,极易导致系统启动异常、服务宕机。
坑3:卸载不彻底,残留大量垃圾文件
apt remove 仅删除程序主体,保留配置文件和缓存,长期积累导致系统臃肿。需要彻底卸载优先使用 apt purge。
坑4:权限不足导致安装失败
修改系统软件、写入系统目录必须 root 权限,普通用户执行 apt 安装会直接报错,需搭配 sudo 使用。
四、RHEL系(CentOS/Rocky/Alma)Yum/Dnf 完整实操
1. 版本适配说明
- CentOS7
- CentOS8/9、Rocky、AlmaLinux:默认包管理器为
dnf,yum 仅是 dnf 的软链接,命令完全兼容
本文所有命令同时兼容 yum/dnf,新旧系统可通用。
2. 核心实操命令(兼容新旧版本)
# 1. 生成软件源缓存
yum makecache
dnf makecache
# 2. 升级所有可更新软件
yum update -y
dnf update -y
# 3. 安装软件
yum install 软件名 -y
dnf install 软件名 -y
# 4. 卸载软件
yum remove 软件名 -y
dnf remove 软件名 -y
# 5. 搜索软件
yum search 软件名
dnf search 软件名
# 6. 查看软件详细信息
yum info 软件名
dnf info 软件名
# 7. 查看已安装所有软件
yum list installed
dnf list installed
yum与dnf区别
CentOS7继续使用 Yum 即可;
Rocky、AlmaLinux、CentOS Stream、
RHEL8/9 建议统一使用 Dnf。
虽然 Yum 命令依然可用,本质已经调用 Dnf。
3. 本地 rpm 包手动安装
RHEL 系本地软件包格式为 .rpm,核心使用 rpm 工具安装。
基础安装命令
# 常规安装
rpm -ivh 软件包.rpm
# 强制安装(忽略依赖,不推荐新手使用)
rpm -ivh --nodeps 软件包.rpm
# 覆盖安装(升级替换旧版本)
rpm -Uvh 软件包.rpm
依赖缺失解决方案
原生 rpm 命令不自动解决依赖,推荐使用 yum/dnf 安装本地包,可自动补全依赖:
# 自动解决依赖安装本地rpm包(推荐)
yum install ./软件包.rpm
dnf install ./软件包.rpm
混合使用坑点
禁止频繁混用rpm 和 yum/dnf 操作同一个软件,容易导致依赖数据库紊乱、软件状态异常,出现装不上、卸不掉的问题。
4. Yum/Dnf 生产避坑规范
规范1:禁止生产直接全量 update
生产服务器禁止随意执行 yum update 全量升级,内核、系统库、依赖包大幅更新,极易引发服务兼容问题。
规范2:只升级指定软件,不升级内核
# 仅升级nginx,不改动系统其他组件
yum update nginx -y
# 禁止升级内核(生产稳定必备)
yum update --exclude=kernel* -y
规范3:定期清理缓存与无效依赖
# 清理过期缓存
yum clean all
dnf clean all
# 自动清理无用依赖包
yum autoremove
dnf autoremove
五、全网最高频:依赖报错终极解决方案
90% 的包管理报错,本质都是依赖缺失、版本冲突、源混乱,以下是通用排查+修复方案。
1. 通用排查思路
2. Debian系 Apt 依赖修复
# 自动修复破损依赖
apt -f install
# 清理无用依赖包
apt autoremove
# 清理软件缓存
apt clean
3. RHEL系 Yum/Dnf 依赖修复
# 重建缓存、修复源异常
yum clean all && yum makecache
# 检测并修复依赖问题
yum check
# 自动移除无用依赖
yum autoremove
4. 第三方源导致依赖混乱解决办法
安装 Nginx、Redis、MySQL 等第三方软件时,新增的第三方源容易和系统官方源版本冲突。
解决方案:临时禁用多余源、保留官方稳定源,或直接删除无用 .repo 源文件,清理缓存后重新安装。
六、常见问题
Q:Ubuntu 为什么不能用 yum?CentOS 为什么不能用 apt?
两者属于完全不同的包管理体系,命令、依赖数据库、软件包格式均不通用,系统未内置对应工具,强行使用必然报错。
Q:update 和 upgrade 到底有什么区别?
update:仅更新软件源索引缓存,无任何软件变更,安全无风险; upgrade:真实升级系统已安装软件,会变更软件版本,生产环境需谨慎操作。
Q:手动安装 rpm/deb 包报错怎么办?
优先使用「包管理器安装本地包」的方式自动补依赖(apt install ./xxx.deb / yum install ./xxx.rpm),不要用原生 dpkg/rpm 强制安装,规避依赖缺失问题。
Q:如何彻底卸载软件,不留残留配置?
Ubuntu/Debian:使用 apt purge 软件名; CentOS/Rocky:先 yum remove 软件名,再执行 yum autoremove 清理无用依赖。
如果你觉得本文对你有帮助,欢迎点赞、推荐、转发,关注我,后续会分享更多Linux入门干货!
文 / 零距技术仓
记录每一次真实的折腾 (#^.^#)
🚀 想看到更多实用折腾技巧?
👉 先关注
💬 评论区说说你的经历或想看的内容
👍 点赞表示支持
🔁 顺手分享给也在折腾的人,让大家都少踩坑 😎