当前位置: 首页 > news >正文

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发行版时,这份对照手册将成为你快速适应新环境的秘密武器。

http://www.jsqmd.com/news/1150191/

相关文章:

  • 通信与接口协议面试十三、HDMI
  • Seedance2.5本地部署指南:AI生图与视频生成实战教程
  • ResNet-18/50 与 MobileNetV2/V3 主干网络对比:ImageNet 上 5 个关键指标实测分析
  • 银河麒麟V10服务器版离线部署VNC:基于ISO镜像源3步完成tigervnc-server安装
  • 3小时掌握ACOLITE:开源卫星影像大气校正完整指南
  • Ubuntu 22.04 安装 yum 3.4.3:解决 3 类依赖冲突与 GPG 密钥错误
  • SNAP 9.0 + StaMPS 4.1 集成处理:Ubuntu 18.04 下 30 幅 Sentinel-1 数据 PS-InSAR 全流程
  • Seedance2.5本地部署:从环境配置到批量生图的工程实践指南
  • macOS 10.12-15 启动U盘制作:3种方法对比与5个常见错误修复
  • AI虚拟试穿技术:电商内衣换装本地部署全流程指南
  • 机械革命蛟龙16 Ubuntu 22.04 双系统重装:3步彻底移除旧系统与110GB分区实战
  • 如何5分钟免费解锁Adobe全家桶?Adobe-GenP破解工具终极指南
  • ADM工具一键部署Qwen 35B大模型:本地私有化实战指南
  • 如何轻松下载MOOC课程实现永久学习:完整实用指南
  • OpenClaw-RL 源码阅读笔记 --- (4)--- 架构
  • WinCC V7.3 脚本控制 6 组 Windows 快捷键:SetXGinaValue 函数实战与避坑指南
  • Ubuntu 22.04 Samba 共享文件夹权限配置详解:从 777 到 ACL 的 4 种安全方案
  • 如何轻松去除视频水印:最佳工具及完整指南
  • Seedance 2.5本地部署指南:免费AI生图与视频生成全流程
  • Win10 护眼背景色 3 种方案对比:注册表、批处理与第三方工具
  • WinCC V7.5 脚本控制 6 种 Windows 快捷键:SetXGinaValue 函数实战解析
  • macOS 10.12-15 启动盘制作:3种U盘格式与5个常见错误排查指南
  • Linux 路径解析:5个核心命令与3种路径表示法实战解析
  • Three.js 透明渐变教程
  • 4oz 厚铜 PCB 设计避坑指南:3 大工艺挑战与 DFM 要点解析
  • Screen 与 Tmux 终端复用对比:管理5个以上持久会话的配置与操作指南
  • TigerVNC国产化部署终极指南:ARM架构深度适配与信创环境实战
  • Windows 10 第三方安全软件对比:4款主流工具对默认浏览器的锁定机制
  • 威联通 HybridMount 3.0 反向挂载实战:将Linux服务器目录映射为NAS共享文件夹
  • Windows 11 系统还原点:5%-10%磁盘空间配置与手动/自动创建策略详解