200字
yum
2025-10-10
2025-10-10

"Yellowdog Updater Modified" 的缩写,是一个基于RPM包管理的前端工具,主要用于Red Hat系Linux发行版(如RHEL、CentOS、Fedora)中,自动化管理软件包的安装、升级、卸载及依赖关系处理。

该命令通过访问配置的软件仓库(Repository),自动解决软件包之间的依赖关系,相比直接使用rpm命令更高效,是系统管理员管理软件的首选工具。

 yum [选项] <命令> [软件包/参数]

常用命令与选项

1. 安装软件包(install

  • install <软件包名>:安装指定软件包及其依赖,例如 sudo yum install nginx 安装Nginx并自动解决依赖。

  • -y:自动确认所有提示(无需手动输入y),例如 sudo yum -y install mysql-server 静默安装MySQL服务。

2. 卸载软件包(removeerase

  • remove <软件包名>:卸载指定软件包及不再需要的依赖,例如 sudo yum remove httpd 卸载Apache服务。

  • erase <软件包名>:与remove功能相同,例如 sudo yum erase php 卸载PHP。

3. 升级软件包(updateupgrade

  • update:升级系统中所有可更新的软件包(包括内核),例如 sudo yum update 全面更新系统。

  • update <软件包名>:仅升级指定软件包,例如 sudo yum update firefox 单独升级Firefox浏览器。

  • upgrade:与update功能基本一致,差异在于upgrade会删除过时的软件包,update会保留。

  • -y:自动确认升级操作,例如 sudo yum -y update 无交互升级所有软件。

4. 查询软件包(searchlistinfo

  • search <关键词>:搜索包含关键词的软件包,例如 yum search python3 查找Python3相关包。

  • list <软件包名>:列出指定软件包的安装状态(installed已安装、available可安装),例如 yum list nginx

  • list installed:列出所有已安装的软件包,例如 yum list installed | grep java 筛选已安装的Java包。

  • info <软件包名>:显示软件包的详细信息(版本、描述、依赖等),例如 yum info redis 查看Redis的详细信息。

5. 仓库管理(repolistenabledisable

  • repolist:列出所有启用的软件仓库,例如 yum repolist 显示当前可用的仓库。

  • repolist all:列出所有仓库(包括禁用的),例如 yum repolist all | grep epel 查找EPEL仓库状态。

  • config-manager --enable <仓库名>:启用指定仓库(需安装yum-utils),例如 sudo yum config-manager --enable epel 启用EPEL仓库。

  • config-manager --disable <仓库名>:禁用指定仓库,例如 sudo yum config-manager --disable epel 禁用EPEL仓库。

6. 清理缓存(clean

  • clean all:清理所有缓存(包括元数据和包文件),例如 sudo yum clean all 释放磁盘空间并刷新仓库信息。

  • clean packages:仅清理下载的RPM包文件,例如 sudo yum clean packages 保留元数据,仅删除安装包。

7. 其他常用命令

  • provides <文件路径>:查询哪个软件包提供指定文件,例如 yum provides /usr/bin/ping 查找包含ping命令的包。

  • groupinstall <组名>:安装预定义的软件组,例如 sudo yum groupinstall "Development Tools" 安装开发工具集。

  • history:查看yum操作历史,例如 yum history 显示过往安装/升级记录,yum history undo 10 撤销第10次操作。

参考示例

  • 示例1:安装软件并自动确认 执行 sudo yum -y install httpd php mysql-server,一键安装Apache、PHP和MySQL服务,自动解决依赖并确认所有提示,适合快速部署LAMP环境。

  • 示例2:升级系统并排除内核 执行 sudo yum -y update --exclude=kernel*,升级系统中所有软件但不升级内核(避免内核升级导致兼容性问题),适合生产环境稳定优先的场景。

  • 示例3:搜索并安装特定软件 执行:

     yum search "web server"  # 搜索与"web server"相关的包
     sudo yum -y install nginx  # 安装搜索到的Nginx

    适合根据功能需求查找并安装软件。

  • 示例4:卸载软件并清理依赖 执行 sudo yum remove -y postfix,卸载Postfix邮件服务并自动删除不再需要的依赖包,释放磁盘空间。

  • 示例5:启用EPEL仓库并安装额外软件 执行:

     sudo yum install -y epel-release  # 安装EPEL仓库源
     sudo yum repolist  # 确认EPEL仓库已启用
     sudo yum install -y htop  # 从EPEL仓库安装htop工具

    扩展系统可用软件包,安装官方仓库中没有的工具。

  • 示例6:查询文件所属的软件包 执行 yum provides "*/bin/ifconfig",查找包含ifconfig命令的软件包(通常是net-tools),解决命令缺失问题。

  • 示例7:清理缓存并更新仓库信息 执行 sudo yum clean all && sudo yum makecache,先清理旧缓存,再重新生成仓库元数据缓存,解决仓库信息过期导致的安装失败问题。

  • 示例8:通过历史记录撤销操作 执行:

     yum history  # 查看操作历史,找到需要撤销的ID(如15)
     sudo yum history undo 15  # 撤销第15次操作(如误安装的软件)

    快速回滚错误的软件安装/升级操作。

注意

  1. 现代Red Hat系发行版(如CentOS 8+、RHEL 8+)已逐渐用dnf替代yumyum成为dnf的别名),但命令用法基本一致。

  2. 生产环境中升级系统前建议备份数据,避免版本兼容性问题导致服务异常。

  3. 第三方仓库(如EPEL)可能包含非官方软件,启用前需确认安全性。

评论