apt-get 与 yum 命令对照表:5 个场景下的 Ubuntu/CentOS 包管理等效操作

📅 2026/7/8 21:43:19 👁️ 阅读次数 📝 编程学习
apt-get 与 yum 命令对照表:5 个场景下的 Ubuntu/CentOS 包管理等效操作

apt-get 与 yum 命令对照手册:跨平台运维的5大核心场景实战指南

当你在CentOS的舒适区里游刃有余地使用yum install时,突然切换到Ubuntu系统面对apt-get的陌生语法,是否感到一阵手忙脚乱?这份对照手册将为你打通两大Linux包管理体系的任督二脉。我们不是简单罗列命令,而是从设计哲学差异实战场景出发,帮你建立深层认知框架。

1. 系统更新:不同的哲学,相同的目标

在开始具体操作前,有必要理解两种工具背后的理念差异。yum(Yellowdog Updater Modified)源自Red Hat体系,采用Python编写,其依赖解析算法以事务性操作著称;而apt(Advanced 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 基础安装流程对比

# 安装Nginx(Ubuntu) sudo apt install nginx # 安装时自动回答yes sudo apt install -y nginx # 安装Nginx(CentOS) 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 nodejs=12.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 installed

2.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.rpm

3. 软件搜索与信息查询

3.1 基础搜索功能

# Ubuntu搜索包含"redis"的包 apt search redis # 显示详细描述 apt show redis-server # CentOS搜索 yum search redis # 查看仓库中的详细信息 yum info redis

3.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/ls

4. 软件移除与系统清理

4.1 卸载软件的不同策略

# Ubuntu标准卸载(保留配置文件) sudo apt remove nginx # 彻底清除(包括配置) sudo apt purge nginx # CentOS标准卸载 sudo yum remove nginx # 清除无用依赖 sudo yum autoremove

4.2 清理缓存与旧版本

# Ubuntu清理 sudo apt clean # 删除所有下载的deb包 sudo apt autoclean # 只删除过期的包 # CentOS清理 sudo yum clean all # 彻底清理 sudo package-cleanup --oldkernels # 专用于清理旧内核

空间回收效果对比(以Nginx安装后为例):

操作Ubuntu回收空间CentOS回收空间
基础清理~50MB~30MB
深度清理~120MB~80MB

5. 仓库管理:扩展软件生态

5.1 第三方仓库管理

# Ubuntu添加MongoDB官方仓库 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 656408E390CFB1F5 echo "deb [ arch=amd64 ] 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.rpm

5.2 仓库优先级管理

# Ubuntu设置Pin-Priority # 在/etc/apt/preferences.d/中创建优先级文件 Package: * Pin: release a=stable Pin-Priority: 900 # CentOS使用yum-plugin-priorities sudo yum install yum-plugin-priorities # 在.repo文件中添加priority=N

常见问题解决方案

  1. 签名验证失败

    # Ubuntu sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [KEY] # CentOS sudo rpm --import https://example.com/RPM-GPG-KEY
  2. 仓库元数据损坏

    # Ubuntu sudo rm -rf /var/lib/apt/lists/* sudo apt update # CentOS sudo yum clean all sudo yum makecache

掌握这些核心场景的对照操作后,你会发现虽然命令语法不同,但解决问题的思路是相通的。真正的系统管理高手,应该能够超越具体工具的限制,理解包管理系统背后的设计哲学。当你下次面对陌生的Linux发行版时,这份对照手册将成为你快速适应新环境的秘密武器。