Linux yum

《Linux yum 命令详解》

🛒 学习目标

  1. 掌握 CentOS/RHEL 系统中核心的软件包管理工具 yum 的基本命令与使用方法。
  2. 理解 yum 与 Ubuntu 中 apt 的区别,适应不同 Linux 发行版的运维需求。
  3. 能在阿里云 ECS 上熟练使用 yum 安装、升级、卸载常用软件(如 Nginx、MySQL、Python)。
  4. 学会处理常见的依赖问题、清理缓存、配置镜像源等高级操作。

🧠 核心重点(表格提炼)

操作 命令 功能说明
更新软件源列表 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,准备搭建一个简单的网站服务。

✅ 步骤如下:

  1. 更新软件源缓存:
sudo yum makecache
  1. 安装 EPEL 源(扩展包):
sudo yum install epel-release -y
  1. 安装 Nginx:
sudo yum install nginx -y
  1. 安装 PHP 和扩展模块:
sudo yum install php php-fpm php-mysqlnd -y
  1. 启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
  1. 测试访问你的公网 IP,查看是否显示欢迎页面。

场景二:清理系统垃圾,释放磁盘空间 💾

你发现服务器磁盘快满了,想要清理掉不必要的软件和缓存。

✅ 步骤如下:

  1. 清理 YUM 缓存:
sudo yum clean all
  1. 删除未使用的依赖:
sudo package-cleanup --leaves | xargs sudo yum remove -y

📌 注意:

  • package-cleanupyum-utils 提供的工具,若未安装请先安装:
sudo yum install yum-utils -y
  1. 卸载不用的软件(如 LibreOffice、图形界面):
sudo yum remove libreoffice* gnome* -y

场景三:解决依赖问题,修复安装错误 🚨

你不小心删除了某些系统库,现在无法安装任何新软件。

✅ 解决方案如下:

  1. 尝试重新安装基础系统组件:
sudo yum reinstall centos-release
  1. 修复依赖:
sudo yum check
sudo yum reinstall <具体包名>
  1. 或者重建整个系统依赖(慎用):
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 日志分析与排错技巧》🔍

请告诉我你想深入的方向吧!🚀

posted @ 2023-04-02 11:36  红尘过客2022  阅读(68)  评论(0)    收藏  举报