Linux yum
《Linux yum 命令详解》
🛒 学习目标
- 掌握 CentOS/RHEL 系统中核心的软件包管理工具
yum
的基本命令与使用方法。 - 理解
yum
与 Ubuntu 中apt
的区别,适应不同 Linux 发行版的运维需求。 - 能在阿里云 ECS 上熟练使用
yum
安装、升级、卸载常用软件(如 Nginx、MySQL、Python)。 - 学会处理常见的依赖问题、清理缓存、配置镜像源等高级操作。
🧠 核心重点(表格提炼)
操作 | 命令 | 功能说明 |
---|---|---|
更新软件源列表 | sudo yum makecache |
获取最新可用软件信息 |
升级已安装软件 | sudo yum update |
升级所有可更新的软件包 |
安装新软件 | sudo yum install 包名 |
如 nginx , python3 , curl 等 |
卸载软件 | sudo yum remove 包名 |
删除软件及其依赖(若无其他依赖) |
查看软件信息 | yum info 包名 |
显示版本、依赖关系等 |
搜索软件 | yum search 关键词 |
查找相关软件包 |
清理本地缓存 | sudo yum clean all |
释放磁盘空间 |
列出可更新软件 | yum list updates |
查看哪些软件可以升级 |
查看历史记录 | yum history |
查看执行过的 yum 操作 |
安装开发工具包 | sudo yum groupinstall "Development Tools" |
编译源码所需 |
🔍 详细讲解
1. yum 是什么?🧐
yum
(Yellowdog Updater Modified)是用于 Red Hat、CentOS、Fedora 等基于 RPM 包系统的 Linux 发行版中的软件包管理器。
📌 为什么重要?
- 几乎所有的企业级服务器环境都使用
yum
来安装、更新、卸载软件。 - 阿里云也支持 CentOS、Alibaba Cloud Linux 等系统,掌握
yum
是必备技能之一。
2. 基本操作流程 📦
✅ 第一步:更新软件源缓存
sudo yum makecache
📌 作用:
- 从
/etc/yum.repos.d/
中的.repo
文件定义的源下载最新的软件包索引。 - 类似于 Ubuntu 的
apt update
。
✅ 第二步:安装软件
sudo yum install nginx
📌 提示:
- 如果提示找不到软件,请先运行
makecache
。 - 可加
-y
参数自动确认:
sudo yum install -y nginx
✅ 第三步:升级软件
sudo yum update
📌 注意:
- 此命令将升级所有可更新的软件包。
- 若只想升级某个包,可指定:
sudo yum update nginx
✅ 第四步:卸载软件
sudo yum remove nginx
📌 说明:
yum remove
会删除主程序和不再被其他包依赖的依赖项。- 若想保留配置文件,需手动备份。
3. 查询与搜索软件 🕵️♂️
✅ 查看某个软件包的详细信息:
yum info nginx
📌 输出内容包括:
- 版本号
- 仓库来源
- 描述信息
- 依赖关系
✅ 搜索关键词相关的软件包:
yum search python3
📌 示例输出:
Loaded plugins: fastestmirror
python3.x86_64 : Version 3 of the Python programming language
python3-pip.noarch : A tool for installing and managing Python packages
python3-devel.x86_64 : Development files for the Python language
4. 清理和修复操作 🧹
✅ 清理本地缓存:
sudo yum clean all
📌 用途:
- 当软件源更新后仍无法识别新版本时,可尝试清除缓存重新获取。
- 也可只清空某一个源的缓存:
sudo yum clean --enablerepo=base
✅ 解决依赖冲突或损坏包:
如果安装过程中报错“dependency problems”,可尝试:
sudo yum deplist 包名
sudo yum reinstall 包名
sudo yum check
📌 建议:
- 使用
rpm -Va
检查是否有 RPM 数据库损坏。 - 若仍无法解决,可尝试重置 YUM 数据库:
sudo rm -f /var/lib/rpm/__db.*
sudo rpm --rebuilddb
sudo yum clean all
5. 实战案例:ECS 上的 yum 使用实战 🛠️
场景一:部署一个 Web 服务器(Nginx + PHP)🌐
你在阿里云上有一台 CentOS ECS,准备搭建一个简单的网站服务。
✅ 步骤如下:
- 更新软件源缓存:
sudo yum makecache
- 安装 EPEL 源(扩展包):
sudo yum install epel-release -y
- 安装 Nginx:
sudo yum install nginx -y
- 安装 PHP 和扩展模块:
sudo yum install php php-fpm php-mysqlnd -y
- 启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
- 测试访问你的公网 IP,查看是否显示欢迎页面。
场景二:清理系统垃圾,释放磁盘空间 💾
你发现服务器磁盘快满了,想要清理掉不必要的软件和缓存。
✅ 步骤如下:
- 清理 YUM 缓存:
sudo yum clean all
- 删除未使用的依赖:
sudo package-cleanup --leaves | xargs sudo yum remove -y
📌 注意:
package-cleanup
是yum-utils
提供的工具,若未安装请先安装:
sudo yum install yum-utils -y
- 卸载不用的软件(如 LibreOffice、图形界面):
sudo yum remove libreoffice* gnome* -y
场景三:解决依赖问题,修复安装错误 🚨
你不小心删除了某些系统库,现在无法安装任何新软件。
✅ 解决方案如下:
- 尝试重新安装基础系统组件:
sudo yum reinstall centos-release
- 修复依赖:
sudo yum check
sudo yum reinstall <具体包名>
- 或者重建整个系统依赖(慎用):
sudo yum groupinstall "Minimal Install" --replacepkgs
🧰 小贴士(进阶技巧)🔖
技巧 | 说明 |
---|---|
yum list installed |
查看已安装的软件包 |
yum list extras |
查看非官方源安装的包 |
yum provides */filename |
查找某个文件属于哪个包 |
yumdownloader 包名 |
下载 RPM 包但不安装 |
rpm -qpi 包名.rpm |
查看 RPM 包信息 |
rpm -ivh 包名.rpm |
手动安装 RPM 包 |
yum shell |
进入交互式命令模式批量操作 |
📌 注意事项与安全建议
项目 | 建议 |
---|---|
不要随意卸载系统核心包 | 如 glibc , systemd ,可能导致系统崩溃 |
安装软件前先确认来源 | 避免安装非官方源中的恶意软件 |
使用 --dry-run 测试操作 |
如 yum install nginx --assumeno |
定期清理缓存和无用依赖 | 避免磁盘爆满 |
不要在生产环境频繁升级 | 建议测试后再上线 |
设置自动更新(可选) | 使用 yum-cron 自动打补丁 |
🧩 附录:常见软件安装命令清单 📦
软件 | 安装命令 |
---|---|
Nginx | sudo yum install nginx |
MySQL | sudo yum install mariadb-server (CentOS 默认是 MariaDB) |
PostgreSQL | sudo yum install postgresql-server |
Redis | sudo yum install redis |
Git | sudo yum install git |
Python3 | sudo yum install python3 |
pip3 | sudo yum install python3-pip |
Curl | sudo yum install curl |
Vim | sudo yum install vim |
Net-tools(ifconfig) | sudo yum install net-tools |
UFW(防火墙) | sudo yum install firewalld (CentOS 默认使用 firewalld ) |
🎯 总结一句话:
“掌握
yum
,就像拥有了一把万能钥匙🔑 —— 它能帮你轻松打开 CentOS/RHEL 系统的软件世界大门,无论你想安装、升级、卸载还是修复,它都能为你保驾护航!”
是否继续下一章?我将继续输出:
- 《Shell 命令进阶与自动化脚本》🖥️
- 《Linux 权限管理与 ACL 详解》🔐
- 《Linux 日志分析与排错技巧》🔍
请告诉我你想深入的方向吧!🚀