一、YUM 软件安装流程¶
一次完整的 yum install -y wget 安装流程,大致可以分为以下几个步骤:
1、运行 yum install -y wget 命令。
2、解析 wget 软件包是否存在依赖。
3、yum 根据本地配置的 yum 源地址发起请求,获取目标软件包及其依赖信息。
4、如果仓库中存在对应软件,则把相关 rpm 包下载到 yum 缓存目录。
5、软件包和依赖下载完成后开始安装。
6、安装完成后,默认会删除刚刚下载的 rpm 缓存包。
二、yum 源配置¶
2.1 什么是 yum 源¶
yum 源本质上是存放软件包的仓库地址,配置目录通常位于:
/etc/yum.repos.d/*.repo
2.2 为什么要配置 yum 源¶
配置 yum 源的常见原因有两个:
- 下载速度更快。
- 系统默认 yum 源无法满足实际需求,例如默认仓库里没有需要的软件包。
在虚拟机、私有云、物理服务器中,经常需要手动配置 yum 源;而在部分公有云环境中,系统镜像通常已经帮你配置好了可用镜像源。
2.3 一键配置为阿里云的 yum 源¶
先查看当前系统正在使用的 yum 源列表:
$ yum repolist
2.3.1 配置 CentOS 7 默认源为阿里云源¶
先备份原始配置:
$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的阿里云 CentOS 源配置:
$ wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或者使用 curl:
$ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
2.3.2 增加阿里云 EPEL 源¶
如果之前配置过其他 EPEL 源,可以先备份:
$ mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
$ mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
下载新的 EPEL repo 文件:
$ wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
2.4 yum 源配置基础模板¶
下面是一个基本的 yum 源配置模板:
[repository_name]
name=Repository Name
baseurl=http://example.com/yum/repo/
enabled=1
gpgcheck=0
gpgkey=http://example.com/RPM-GPG-KEY
模板中的关键字段含义如下:
[repository_name]:仓库标识名称。name:仓库说明。baseurl:仓库地址,通常需要确保该地址下存在repodata目录。enabled:是否启用该仓库,1表示启用,0表示禁用。gpgcheck:是否开启 GPG 校验。gpgkey:GPG 密钥地址,用于校验仓库中的软件包。
三、yum 源配置文件详解¶
下面以 cat /etc/yum.repos.d/CentOS-Base.repo 的一段内容为例:
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
各字段说明如下:
| 配置项 | 说明 |
|---|---|
[base] |
yum 源名称 |
name= |
yum 源详细说明 |
failovermethod= |
可选项;若上面的地址失败,则尝试后备地址 |
baseurl= |
yum 源核心地址,打开后应能看到 repodata 目录 |
enabled=1 |
是否启用该 yum 源;默认通常为开启 |
gpgcheck=1 |
是否启用 GPG 检查;自建仓库时可根据需要关闭 |
gpgkey= |
用于验证软件包的密钥地址;若关闭校验,可不配置 |
四、yum 命令配置文件¶
yum 命令自身也有配置文件,默认位于:
/etc/yum.conf
常见内容如下:
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
在正式环境中通常很少修改这个文件,不过有几个参数需要了解:
| 配置项 | 说明 |
|---|---|
keepcache= |
0 表示关闭缓存,安装后自动删除 rpm 包;1 表示保留缓存 |
cachedir |
yum 下载软件包的缓存目录,通常位于 /var/cache/yum/... |
logfile |
yum 日志文件,通常为 /var/log/yum.log |
五、yum 常用命令详解¶
从增、删、改、查角度看,常见 yum 命令如下:
| yum 命令选项 | 命令说明 |
|---|---|
yum install -y bash-completion bash-completion-extras |
安装命令补全工具 |
yum install -y 软件包 |
安装软件包,并自动处理依赖 |
yum reinstall -y 软件包 |
重新安装软件包 |
yum provides 命令或文件 |
根据命令或文件反查软件包 |
yum search all 命令或文件 |
搜索软件包 |
yum repolist |
查看 yum 源信息 |
yum list |
查看仓库中的软件包列表 |
yum remove 软件包 |
删除软件包,通常会一起处理依赖 |
yum clean all |
清空缓存,自建 yum 仓库时经常会用到 |
yum update / yum upgrade |
更新软件包 |
5.1 增加:安装¶
安装 tree 软件包:
$ yum install -y tree
重新安装 tree 软件包:
$ yum reinstall -y tree
5.2 查看:检查与搜索¶
查看 tree 命令属于哪个软件包:
$ yum provides tree
搜索与 tree 相关的软件包:
$ yum search all tree
查看 yum 源信息:
$ yum repolist
查看所有 yum 仓库中的软件包:
$ yum list
5.3 改:升级¶
升级软件包:
$ yum update
或者:
$ yum upgrade
5.4 删除¶
删除 tree 软件包,并一并删除相关依赖:
$ yum remove tree
如果只想删除软件包本身,不想连带处理依赖,可以使用 rpm -e:
$ rpm -e tree-1.6.0-10.el7.x86_64
六、小结¶
学习 YUM 的关键,不只是记命令,还要理解三件事:
- 软件从哪里来,也就是仓库和 repo 文件怎么配置。
- 软件安装时发生了什么,也就是依赖解析、下载和缓存流程。
- 出问题时去哪里看,也就是
repolist、yum.conf、缓存目录和日志文件。