"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. 卸载软件包(remove 或 erase)
remove <软件包名>:卸载指定软件包及不再需要的依赖,例如sudo yum remove httpd卸载Apache服务。erase <软件包名>:与remove功能相同,例如sudo yum erase php卸载PHP。
3. 升级软件包(update 或 upgrade)
update:升级系统中所有可更新的软件包(包括内核),例如sudo yum update全面更新系统。update <软件包名>:仅升级指定软件包,例如sudo yum update firefox单独升级Firefox浏览器。upgrade:与update功能基本一致,差异在于upgrade会删除过时的软件包,update会保留。-y:自动确认升级操作,例如sudo yum -y update无交互升级所有软件。
4. 查询软件包(search、list、info)
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. 仓库管理(repolist、enable、disable)
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次操作(如误安装的软件)快速回滚错误的软件安装/升级操作。
注意:
现代Red Hat系发行版(如CentOS 8+、RHEL 8+)已逐渐用
dnf替代yum(yum成为dnf的别名),但命令用法基本一致。生产环境中升级系统前建议备份数据,避免版本兼容性问题导致服务异常。
第三方仓库(如EPEL)可能包含非官方软件,启用前需确认安全性。