yum配置,文件,命令详解
前言
yum
(Yellowdog Updater Modified)是一个基于 RPM 包管理的工具,广泛用于 CentOS、RHEL、Fedora 等 Linux 发行版的软件包管理。yum
的工作依赖于配置文件,这些文件控制了它的行为和如何从不同的软件源安装、更新和删除软件包。
一、YUM 配置文件
1. YUM 配置文件的位置
YUM 的配置文件主要存储在 /etc/yum.repos.d/
目录下,每个源有一个 .repo
文件,文件的内容决定了该源的配置。每个 .repo
文件代表一个 YUM 仓库配置。系统的主配置文件是 /etc/yum.conf
,不过大部分配置都是通过各个仓库的 .repo
文件来实现的。
2. /etc/yum.conf
文件
/etc/yum.conf
文件是 YUM 的主配置文件,包含了一些全局的设置。它的典型内容如下:
[main]
# 设置 YUM 的缓存目录
cachedir=/var/cache/yum
# 设置 YUM 是否会在安装包之前验证 GPG 签名
gpgcheck=1
# 是否启用本地缓存,1 表示启用,0 表示禁用
keepcache=0
# 设置下载失败时的重试次数
retries=3
# 设置 YUM 的最大并发下载数
# num_threads=10
# 是否启用插件
pluginpath=/usr/lib/yum-plugins
# 启用插件
plugins=1
- cachedir: 设置缓存目录,YUM 会将下载的软件包缓存到这个目录中。
- gpgcheck: 是否检查 GPG 签名,如果设置为
1
,YUM 会验证每个 RPM 包的 GPG 签名。 - keepcache: 是否保留已下载的安装包,
0
表示安装后删除,1
表示保留安装包。 - retries: 如果 YUM 下载失败,重试的次数。
- pluginpath: 插件目录。
- plugins: 是否启用插件,
1
启用,0
禁用。
3. /etc/yum.repos.d/
目录中的 .repo
文件
每个 .repo
文件代表一个 YUM 源,其基本格式如下:
[repo_name]
name=Repository Name
baseurl=http://path/to/repository
enabled=1
gpgcheck=1
gpgkey=http://path/to/gpgkey
[repo_name]
:仓库的名称,通常是该源的标识符。name
:仓库的描述名称,用于表示该仓库的目的。baseurl
:仓库的 URL 地址,指向 RPM 包所在的目录。它可以是 HTTP、FTP 或本地文件路径(例如file:///path/to/repo/
)。enabled
:是否启用该仓库,1
表示启用,0
表示禁用。gpgcheck
:是否检查 GPG 签名,1
表示启用签名检查,0
表示不检查。gpgkey
:用于验证软件包签名的 GPG 公钥 URL。
例如,如果要配置一个阿里云的 YUM 源,可以编辑 /etc/yum.repos.d/CentOS-Base.repo
文件并添加以下内容:
[base] name=CentOS-$releasever - Base baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
[updates] name=CentOS-$releasever - Updates baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
二、常用 YUM 命令详解
yum
命令是用于包管理的工具,下面是一些常见的 YUM 命令及其参数解释。
1. 安装软件包
yum install <package_name>
这个命令用于安装一个或多个软件包。<package_name>
是你想安装的软件包的名称。
例如,安装 vim
:
yum install vim
安装多个软件包:
yum install vim git wget
2. 卸载软件包
yum remove <package_name>
这个命令用于卸载指定的软件包。你可以提供一个或多个包名。
例如,卸载 vim
:
yum remove vim
3. 更新软件包
yum update
这个命令会更新所有已安装的软件包到最新版本。
如果只想更新某个特定的软件包:
yum update <package_name>
例如,更新 vim
:
yum update vim
4. 查看软件包信息
yum info <package_name>
显示软件包的详细信息,包括版本、描述和安装状态。
例如:
yum info vim
5. 搜索软件包
yum search <package_name>
这个命令搜索所有已配置的仓库中,符合 <package_name>
模糊匹配的软件包。
例如,查找与 vim
相关的包:
yum search vim
6. 列出已安装的软件包
yum list installed
列出所有已安装的软件包。
7. 列出可用软件包
yum list available
列出所有可从已启用的仓库中安装的包。
8. 列出可更新的软件包
yum list updates
列出所有可用的更新包。
9. 清除 YUM 缓存
yum clean all
清除 YUM 的缓存目录,删除所有的缓存数据。这个命令可以帮助解决由于缓存数据损坏或不一致导致的安装问题。
yum clean metadata
清除元数据缓存。
10. 生成 YUM 缓存
yum makecache
创建或更新 YUM 缓存。执行此命令后,YUM 将会尝试从所有启用的仓库下载并更新元数据(例如,软件包信息和仓库状态),以便在没有网络的情况下安装软件包。
11. 查看 YUM 仓库
yum repolist
显示已启用仓库的列表及其状态。
如果想查看所有仓库(包括已禁用的),可以使用:
yum repolist all
12. 列出仓库中的软件包
yum list <package_name> --disablerepo=<repo_name>
这个命令会列出指定仓库中是否存在某个软件包。
13. 禁用或启用仓库
在 /etc/yum.repos.d/
中每个 .repo
文件都有 enabled
字段。你可以通过以下命令启用或禁用某个仓库:
- 禁用仓库:
yum --disablerepo=<repo_name> <command>
例如,禁用 base
仓库后执行安装命令:
yum --disablerepo=base install vim
- 启用仓库:
yum --enablerepo=<repo_name> <command>
三、YUM 源的优先级配置
YUM 源的优先级可以通过 yum-plugin-priorities
插件来设置。如果多个仓库提供相同的软件包,YUM 会优先选择优先级较高的仓库。
-
安装
yum-plugin-priorities
插件:
yum install yum-plugin-priorities
-
在
.repo
文件中设置优先级:
[repo_name] priority=10
优先级数值越小,优先级越高。priority
数值范围是 1 到 99。
四、总结
- YUM 配置文件:YUM 配置文件分为
/etc/yum.conf
和/etc/yum.repos.d/*.repo
文件,/etc/yum.conf
用于全局设置,而.repo
文件则配置各个仓库的详细信息。 - YUM 命令:YUM 提供了一系列命令来安装、更新、卸载软件包,管理仓库源,清理缓存等。
- YUM 源管理:可以通过编辑
.repo
文件添加、修改、删除仓库,也可以控制仓库的启用/禁用以及优先级。