软件包管理避坑指南:Yum / Apt 换源与生产实践
软件包管理避坑指南:Yum / Apt 换源与生产实践
软件管理是所有 Linux 操作的入口,装错了源、乱跑了 update,轻则环境不可用,重则直接干崩生产。这篇把两系包管理的日常操作和生产避坑点整理成一份清单。
一、先建立两层结构的心智模型
不管哪个发行版,软件管理都是两层:
- 高层工具(自动解决依赖):RedHat 系
yum/dnf、Debian 系apt/apt-get——生产中 99% 的场景用它们; - 底层工具(只管单个包):
rpm、dpkg——只在装本地安装包、排查依赖时用。
配置文件位置:RedHat 系在 /etc/yum.repos.d/(每个 .repo 一个源),Debian 系在 /etc/apt/sources.list 和 sources.list.d/。
二、RedHat 系日常操作
1 | # 安装 |
全量 yum update 是生产大忌。我吃过一次亏:凌晨跑了个全量升级,把内核从 3.10 升到了新版本,第二天重启服务器直接进不去系统,最后靠 grub 手动切回旧内核才救回来。从那以后生产只做 --security 安全更新,大版本升级一律走变更评审 + 灰度环境验证。
换源(阿里云,CentOS 7 为例):
1 | mkdir /etc/yum.repos.d/bak |
本地 rpm 安装(底层工具):
1 | rpm -ivh nginx-1.20.1-1.el7.x86_64.rpm # 安装本地包(-i 安装 -v 详细 -h 进度条) |
三、Debian 系日常操作
1 | # 源:deb = 二进制包源(一般用不到 deb-src 源码源) |
本地 deb 安装与依赖修复:
1 | dpkg -i nginx_1.18.0-0ubuntu1_amd64.deb |
四、两个高频排障场景
- 装包报依赖错误:先
yum search/yum deplist(或apt depends)看依赖闭包,缺什么补什么;本地包优先用高层工具的本地安装参数(yum localinstall),让依赖自动解决。 rpm -qf反查没结果:文件可能是手动编译安装的,不在任何 rpm 包内——这类文件升级时要特别注意,卸载重装会丢。
小结
包管理的核心纪律就三条:换源用国内镜像、生产只做安全更新、卸载前看清依赖提示。把这三点写进初始化检查清单(见《Linux 发行版选型与系统初始化实践》),基本能避开 90% 的软件管理事故。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuminDream's Blogs!


