Linux Yum仓库配置要点
Yum仓库的配置文件主要存放在/etc/yum.repos.d/目录下,每个仓库对应一个以.repo为后缀的文件(如CentOS-Base.repo)。系统默认可能已包含CentOS-Base.repo(CentOS/RHEL)、redhat.repo(RHEL)等默认仓库文件。每个.repo文件包含一个或多个[repository_id](仓库唯一标识)段,段的名称需唯一,用于区分不同仓库。
每个仓库段需配置以下关键参数:
name:仓库的描述名称(如name=CentOS-$releasever - Base),用于标识仓库用途,便于管理员识别。baseurl:仓库的基础URL(如baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/),是Yum下载软件包的主要来源;也可使用mirrorlist(镜像列表URL,如mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os),Yum会自动选择最优镜像。enabled:是否启用仓库(1表示启用,0表示禁用)。禁用仓库后,Yum不会从该仓库获取软件包。gpgcheck:是否启用GPG签名校验(1表示启用,0表示禁用)。启用后可确保软件包未被篡改,提升安全性。gpgkey:GPG公钥的路径(如gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7),用于验证软件包签名的合法性。/etc/yum.conf是Yum的全局配置文件,包含影响所有仓库的通用设置,常用参数包括:
cachedir:缓存目录(如cachedir=/var/cache/yum/$basearch/$releasever),用于存储下载的软件包和元数据。keepcache:是否保留下载的软件包(1表示保留,0表示不保留),保留后可加快后续安装速度。debuglevel:调试级别(如debuglevel=2),数值越大,日志信息越详细,便于排查问题。logfile:日志文件路径(如logfile=/var/log/yum.log),记录Yum的操作日志。gpgcheck:全局GPG校验设置(1表示启用,0表示禁用),可覆盖仓库级别的gpgcheck设置。plugins:是否启用插件(1表示启用,0表示禁用),如fastestmirror插件可自动选择最快的镜像源。配置或修改仓库后,需更新Yum缓存以同步最新仓库信息:
yum clean all命令清除所有缓存(包括软件包和元数据)。yum makecache命令下载仓库的最新元数据(如软件包列表、依赖关系),并存入缓存目录。缓存更新后,Yum的安装、更新操作会更快。enabled参数设置为1(如enabled=1),或使用yum-config-manager --enable <repository_id>命令(如yum-config-manager --enable myrepo)。enabled参数设置为0(如enabled=0),或使用yum-config-manager --disable <repository_id>命令(如yum-config-manager --disable myrepo)。yum repolist命令查看启用的仓库列表,yum repolist all命令查看所有仓库(包括禁用的)的状态。为提高下载速度和可靠性,建议配置仓库镜像:
mirrorlist参数(如mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os),Yum会自动选择最快的镜像源。yum install yum-plugin-fastestmirror命令安装插件,启用后会自动选择最优镜像,无需手动配置mirrorlist。若无法访问网络,可配置本地仓库(如使用ISO镜像或本地目录):
mkdir /mnt/cdrom; mount /dev/sr0 /mnt/cdrom)。.repo文件(如local.repo),设置baseurl为本地目录(如baseurl=file:///mnt/cdrom),并启用仓库(enabled=1)。createrepo命令生成元数据(如createrepo /path/to/local/repo)。repository_id需唯一,避免与其他仓库冲突。baseurl或mirrorlist的路径需可访问(网络仓库需确保网络畅通,本地仓库需确保路径存在)。gpgcheck(1)并配置正确的gpgkey,防止安装被篡改的软件包。yum repolist查看仓库是否启用,yum install <package_name>测试是否能正常安装软件包。