yum(Yellow dog Updater, Modified)是 Red Hat 及其衍生发行版(如 CentOS、Fedora、RHEL 等)中常用的包管理器,用于自动处理软件的安装、更新、卸载和依赖关系管理,它基于 RPM 包管理,但通过依赖解析功能简化了操作流程,尤其适合初学者和系统管理员使用,以下将详细介绍 yum 的常用命令及其应用场景,帮助用户高效管理软件包。

软件包查询命令
在使用 yum 时,查询软件包信息是基础操作,通过查询,可以了解系统中已安装或可用的软件包及其详细信息。
-
列出所有已安装的软件包
执行yum list installed或yum list installed | grep "关键词"可查看系统中已安装的软件包,结合 grep 可快速筛选特定软件包。yum list installed | grep "nginx"仅显示与 nginx 相关的已安装包。 -
列出仓库中可用的软件包
yum list available显示当前仓库中所有可安装的软件包,而yum list updates则列出可更新的软件包,若需查看特定软件包的可用版本,可使用yum list "软件包名",如yum list "httpd"。 -
搜索软件包
yum search "关键词"可根据描述或名称搜索软件包。yum search "ftp"会返回与 FTP 相关的软件包列表,帮助用户快速定位所需工具。
(图片来源网络,侵删) -
查看软件包详细信息
yum info "软件包名"提供软件包的详细描述、版本、大小、依赖关系等信息。yum info "vsftpd"可查看 FTP 服务器软件 vsftpd 的具体信息,辅助决策是否安装。 -
查询软件包文件所属
若需了解某个文件属于哪个软件包,可使用yum provides "文件路径"。yum provides "/usr/bin/ssh"会显示提供 ssh 命令的软件包(通常为 openssh-clients)。
软件包安装与更新
安装和更新软件包是 yum 的核心功能,支持自动处理依赖关系,避免手动解决复杂依赖问题。
-
安装软件包
yum install "软件包名"用于安装指定软件包及其依赖。yum install "git"会自动安装 git 及其所需的库文件,若需安装多个包,可用空格分隔,如yum install "vim" "wget"。
(图片来源网络,侵删) -
安装特定版本的软件包
通过yum install "软件包名-版本号"可安装指定版本。yum install "httpd-2.4.6"安装 httpd 的 2.4.6 版本,需注意,仓库中必须存在该版本。 -
更新软件包
yum update更新所有已安装软件包至最新版本,而yum update "软件包名"仅更新指定软件包。yum update "kernel"可单独更新内核。 -
升级系统
yum upgrade与yum update类似,但会处理配置文件的冲突,通常用于系统 major 版本升级。 -
重新安装软件包
若软件包文件损坏,可通过yum reinstall "软件包名"重新安装,保留原有配置文件。
软件包卸载与清理
卸载不需要的软件包并清理缓存,可释放磁盘空间并保持系统整洁。
-
卸载软件包
yum remove "软件包名"或yum erase "软件包名"用于卸载软件包及其依赖(若未被其他包使用)。yum remove "nginx"会彻底删除 nginx 及其未使用的依赖。 -
卸载时保留配置文件
默认情况下,卸载软件包会删除配置文件,若需保留,可使用yum remove "软件包名" --save-old,但需注意后续安装同名包时可能产生冲突。 -
清理缓存
yum 会缓存下载的软件包,可通过以下命令清理:yum clean all:清理所有缓存(包括 headers、packages、metadata 等)。yum clean packages:仅清理已下载的软件包文件。yum clean metadata:清理软件包元数据。
定期清理可节省磁盘空间,尤其对于存储空间有限的系统。
仓库与组管理
yum 支持管理软件源和软件包组,便于批量操作。
-
列出可用的软件源
yum repolist显示当前启用的软件源及其包含的软件包数量,而yum repolist all列出所有软件源(包括禁用的)。 -
启用或禁用软件源
通过yum-config-manager --enable "源ID"启用软件源,--disable禁用。yum-config-manager --enable "epel"启用 EPEL 源。 -
安装软件包组
yum groupinstall "组名"批量安装一组相关软件包。yum groupinstall "Development Tools"安装开发工具组(包含 gcc、make 等)。 -
查看软件包组信息
yum groupinfo "组名"显示组内包含的软件包列表。yum groupinfo "Web Server"查看 Web 服务器组的组成。
其他实用命令
-
检查更新
yum check-update列出所有可更新的软件包,但不执行更新操作。 -
历史记录管理
yum history list查看 yum 操作历史记录,yum history undo "ID"撤销指定操作(如安装或卸载)。 -
依赖关系检查
yum deplist "软件包名"显示指定软件包的依赖及其提供者,便于排查依赖问题。
yum 常用命令速查表
| 功能分类 | 命令 | 说明 |
|---|---|---|
| 查询已安装包 | yum list installed |
列出所有已安装的软件包 |
| 查询可用包 | yum list available |
列出仓库中所有可安装的软件包 |
| 搜索软件包 | yum search "关键词" |
根据关键词搜索软件包 |
| 查看包信息 | yum info "软件包名" |
显示软件包的详细信息 |
| 安装软件包 | yum install "软件包名" |
安装指定软件包及其依赖 |
| 更新软件包 | yum update "软件包名" |
更新指定软件包至最新版本 |
| 卸载软件包 | yum remove "软件包名" |
卸载指定软件包及其未使用的依赖 |
| 清理缓存 | yum clean all |
清理所有 yum 缓存文件 |
| 安装软件包组 | yum groupinstall "组名" |
批量安装软件包组 |
| 查看软件源 | yum repolist |
显示当前启用的软件源列表 |
相关问答 FAQs
问题 1:如何使用 yum 安装指定版本的软件包?
解答:若需安装特定版本,可通过 yum install "软件包名-版本号" 实现,安装 nginx 的 1.18.0 版本,命令为 yum install "nginx-1.18.0",需确保仓库中存在该版本,否则会提示“没有可用软件包”,可通过 yum list "软件包名" 查看所有可用版本。
问题 2:yum 缓存占用空间过大,如何清理?
解答:yum 默认将下载的软件包和元数据保存在 /var/cache/yum/ 目录下,执行 yum clean all 可清理所有缓存(包括 headers、packages、dbcache 等),释放磁盘空间,若仅想清理软件包文件,可使用 yum clean packages;清理元数据则用 yum clean metadata,建议定期执行清理命令,尤其在磁盘空间紧张时。
