yum 是基于 RPM 包管理的 Linux 系统(如 CentOS、RHEL)的包管理工具,用于方便地安装、更新、卸载和管理软件包。yum 会自动解决软件包的依赖关系,并从指定的仓库中下载和安装所需的包。
在 CentOS 8 和 RHEL 8 中,yum 被替换为 dnf(但 yum 仍作为兼容命令存在)。以下内容基于传统的 yum 命令。
基本语法
- 选项:可以用来控制
yum 的行为(如 -y 表示自动确认)。
- 子命令:指定要执行的操作(如
install、update、remove 等)。
- 参数:指定操作的目标(如某个软件包名称)。
常用子命令及用法
安装软件包
安装一个软件包
安装多个软件包
1
| yum install <软件包名1> <软件包名2>
|
自动确认安装(无需交互)
卸载软件包
卸载一个软件包
自动确认卸载(无需交互)
更新软件
更新单个软件包
更新所有软件包
- 作用:更新系统中的所有软件包及其依赖,同时升级内核(如果有更新)。
仅更新特定软件包组
1
| yum groupupdate "Development Tools"
|
搜索软件包
搜索软件包名称
- 输出:列出名称或描述中包含
vim 的相关软件包。
列出软件包详细信息
- 输出:显示软件包的版本、大小、描述、依赖等详细信息。
列出软件包
列出已安装的软件包
列出可用的软件包
列出特定软件包
清理缓存
清理所有缓存
清理软件包缓存
清理元数据缓存
- 作用:删除缓存的仓库元数据(如包列表、更新信息)。
仓库管理
列出所有仓库
列出所有仓库(包括禁用的)
启用特定仓库
1
| yum --enablerepo=<仓库ID> install <软件包名>
|
1
| yum --enablerepo=epel install htop
|
禁用特定仓库
1
| yum --disablerepo=<仓库ID> install <软件包名>
|
1
| yum --disablerepo=epel install vim
|
软件包组管理
列出所有可用的软件包组
安装软件包组
1
| yum groupinstall "Development Tools"
|
- 作用:安装开发工具组(包含 GCC、Make 等常用开发工具)。
卸载软件包组
1
| yum groupremove "Development Tools"
|
查看历史操作
查看操作历史
查看特定操作的详情
撤销某次操作
重做某次操作
常用选项
| 选项 |
作用 |
-y |
自动确认所有提示(适用于安装、卸载等操作)。 |
--enablerepo |
启用指定仓库,仅在当前命令中生效。 |
--disablerepo |
禁用指定仓库,仅在当前命令中生效。 |
-q |
安静模式,不输出多余信息。 |
-v |
显示详细信息。 |
--nogpgcheck |
跳过 GPG 签名检查(仅在仓库未配置 GPG 签名时使用)。 |
示例场景
安装指定版本的软件包
1
| yum install <软件包名>-<版本号>
|
1
| yum install nginx-1.18.0
|
启用 EPEL 仓库并安装软件
1
| yum --enablerepo=epel install htop
|
仅下载软件包,不安装
1
| yum install --downloadonly --downloaddir=<目录> <软件包名>
|
1
| yum install --downloadonly --downloaddir=/tmp wget
|
查看软件包的依赖关系
显示仓库中某个包的详细信息
总结
| 功能分类 |
常用命令 |
| 安装软件 |
yum install <软件包> |
| 卸载软件 |
yum remove <软件包> |
| 更新软件 |
yum update / yum update <软件包> |
| 搜索软件 |
yum search <关键词> |
| 列出软件包 |
yum list installed / yum list available |
| 清理缓存 |
yum clean all / yum clean metadata |
| 仓库管理 |
yum repolist / yum --enablerepo=<仓库> |
| 软件组管理 |
yum grouplist / yum groupinstall "<组名>" |
| 操作历史 |
yum history / yum history undo <ID> |
yum 是一个功能强大且灵活的包管理工具,通过熟练使用 yum,可以轻松管理 Linux 系统中的软件包和依赖关系。