apt-get 与 yum 命令对照手册跨平台运维的5大核心场景实战指南当你在CentOS的舒适区里游刃有余地使用yum install时突然切换到Ubuntu系统面对apt-get的陌生语法是否感到一阵手忙脚乱这份对照手册将为你打通两大Linux包管理体系的任督二脉。我们不是简单罗列命令而是从设计哲学差异和实战场景出发帮你建立深层认知框架。1. 系统更新不同的哲学相同的目标在开始具体操作前有必要理解两种工具背后的理念差异。yumYellowdog Updater Modified源自Red Hat体系采用Python编写其依赖解析算法以事务性操作著称而aptAdvanced Package Tool则是Debian家族的明星用C实现以高效的依赖处理和清晰的进度显示见长。1.1 更新软件源索引# Ubuntu/Debian (apt) sudo apt update # 添加 -qq 参数可抑制非关键输出适合脚本环境 sudo apt -qq update # CentOS/RHEL (yum) sudo yum check-update # 强制刷新缓存相当于apt update apt clean sudo yum clean all sudo yum makecache关键差异点apt将元数据存储在/var/lib/apt/lists/而yum使用/var/cache/yum/apt默认显示彩色进度条yum需安装yum-plugin-ps获得类似体验1.2 升级已安装的软件包# Ubuntu/Debian sudo apt upgrade # 标准升级不处理依赖变更 sudo apt full-upgrade # 激进升级可能删除冲突包 # CentOS/RHEL sudo yum update # 等效于apt upgrade sudo yum --obsoletes update # 等效于apt full-upgrade注意生产环境中建议先测试升级方案。在Ubuntu上可使用apt-listchanges预览变更CentOS则可通过yum history查看过往操作记录。2. 软件安装从基础到高级技巧2.1 基础安装流程对比# 安装NginxUbuntu sudo apt install nginx # 安装时自动回答yes sudo apt install -y nginx # 安装NginxCentOS sudo yum install nginx # 启用EPEL仓库后再安装常见于RHEL sudo yum install epel-release sudo yum install nginx版本选择策略差异apt默认安装stable分支的最新版本yum会优先考虑与当前系统版本匹配的软件包2.2 安装特定版本软件# Ubuntu中安装指定版本的Node.js sudo apt install nodejs12.22.9~dfsg-1ubuntu3 # CentOS中启用SCL仓库安装新版Python sudo yum install centos-release-scl sudo yum install rh-python38 scl enable rh-python38 bash版本查询命令对比操作apt命令yum命令查看可用版本apt-cache policy 包名yum --showduplicates list 包名查看已安装版本apt list --installedyum list installed2.3 源码编译与二进制包混合管理当官方仓库没有所需版本时两种系统有不同的解决方案# Ubuntu方案添加PPA仓库 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt install python3.9 # CentOS方案使用RPM包 wget https://example.com/package.rpm sudo yum localinstall package.rpm3. 软件搜索与信息查询3.1 基础搜索功能# Ubuntu搜索包含redis的包 apt search redis # 显示详细描述 apt show redis-server # CentOS搜索 yum search redis # 查看仓库中的详细信息 yum info redis3.2 高级查询技巧依赖关系分析# 查看nginx的依赖树Ubuntu apt-cache depends nginx # 查看反向依赖哪些包依赖nginx apt-cache rdepends nginx # CentOS中的等效操作 repoquery --requires nginx repoquery --whatrequires nginx文件级查询# 查找提供/bin/ls命令的包Ubuntu apt-file search /bin/ls # 需要先安装并更新数据库 sudo apt install apt-file sudo apt-file update # CentOS等效命令 yum provides /bin/ls4. 软件移除与系统清理4.1 卸载软件的不同策略# Ubuntu标准卸载保留配置文件 sudo apt remove nginx # 彻底清除包括配置 sudo apt purge nginx # CentOS标准卸载 sudo yum remove nginx # 清除无用依赖 sudo yum autoremove4.2 清理缓存与旧版本# Ubuntu清理 sudo apt clean # 删除所有下载的deb包 sudo apt autoclean # 只删除过期的包 # CentOS清理 sudo yum clean all # 彻底清理 sudo package-cleanup --oldkernels # 专用于清理旧内核空间回收效果对比以Nginx安装后为例操作Ubuntu回收空间CentOS回收空间基础清理~50MB~30MB深度清理~120MB~80MB5. 仓库管理扩展软件生态5.1 第三方仓库管理# Ubuntu添加MongoDB官方仓库 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 656408E390CFB1F5 echo deb [ archamd64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list # CentOS添加ELRepo仓库 sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm5.2 仓库优先级管理# Ubuntu设置Pin-Priority # 在/etc/apt/preferences.d/中创建优先级文件 Package: * Pin: release astable Pin-Priority: 900 # CentOS使用yum-plugin-priorities sudo yum install yum-plugin-priorities # 在.repo文件中添加priorityN常见问题解决方案签名验证失败# Ubuntu sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [KEY] # CentOS sudo rpm --import https://example.com/RPM-GPG-KEY仓库元数据损坏# Ubuntu sudo rm -rf /var/lib/apt/lists/* sudo apt update # CentOS sudo yum clean all sudo yum makecache掌握这些核心场景的对照操作后你会发现虽然命令语法不同但解决问题的思路是相通的。真正的系统管理高手应该能够超越具体工具的限制理解包管理系统背后的设计哲学。当你下次面对陌生的Linux发行版时这份对照手册将成为你快速适应新环境的秘密武器。