CentOS环境中管理软件仓库的完整流程
CentOS中,所有第三方软件仓库的配置均存储在/etc/yum.repos.d/目录下,文件扩展名为.repo(如CentOS-Base.repo、epel.repo)。每个.repo文件可定义多个仓库段(以[]包裹的名称,如[base]),关键参数包括:
name:仓库描述(如name=Extra Packages for Enterprise Linux 7);baseurl:仓库地址(支持HTTP/HTTPS/FTP或本地路径,如baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/或file:///mnt);enabled:是否启用(1为启用,0为禁用,默认1);gpgcheck:是否验证GPG签名(1为启用,0为禁用,默认1,生产环境建议开启)。EPEL(Extra Packages for Enterprise Linux)是CentOS常用的第三方仓库,提供额外软件包。添加步骤如下:
sudo yum install epel-release -y(CentOS 7/8均适用),系统会自动下载并配置epel.repo文件;sudo yum-config-manager --enable epel命令开启;sudo yum repolist,若看到epel仓库即表示成功。若需添加非官方仓库(如公司内部仓库),需创建.repo文件:
sudo vi /etc/yum.repos.d/myrepo.repo;[my-local-repo]
name=My Local Repository
baseurl=file:///repo/local # 本地路径或HTTP地址
enabled=1
gpgcheck=0 # 生产环境建议设为1并配置GPG密钥
sudo yum clean all && sudo yum makecache刷新缓存。cd /etc/yum.repos.d/;.repo文件(如删除EPEL仓库):sudo rm -f epel.repo;sudo rm -f /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL。若仅需临时停用仓库,无需删除文件,可通过以下命令禁用:
sudo yum-config-manager --disable repository_name(如sudo yum-config-manager --disable epel)。
本地仓库适用于无外网环境或内网批量部署,步骤如下:
若使用系统ISO作为软件源,需先挂载:
sudo mount -o loop /path/to/CentOS-7-x86_64-DVD.iso /mnt(将ISO挂载到/mnt目录)。
将ISO中的Packages目录复制到本地(或直接使用挂载目录),如:
sudo mkdir -p /repo/local && sudo cp -r /mnt/Packages/* /repo/local/(若未挂载ISO,可将下载的RPM包放入此目录)。
安装createrepo工具(若未安装):sudo yum install createrepo -y;
生成元数据:sudo createrepo /repo/local(会在目录下生成repodata文件夹,包含仓库索引)。
创建/etc/yum.repos.d/local.repo文件,添加以下内容:
[local-repo]
name=Local CentOS Repository
baseurl=file:///repo/local # 指向本地软件包目录
enabled=1
gpgcheck=0
sudo yum clean all && sudo yum makecache。每次修改仓库配置(添加/删除仓库、修改baseurl)后,需运行以下命令更新缓存:
sudo yum clean all && sudo yum makecache(CentOS 8及以上用dnf替代yum)。
运行sudo yum repolist,可查看所有启用的仓库;添加--all参数可查看所有仓库(包括禁用):
sudo yum repolist all。
sudo yum-config-manager --enable repository_name(如sudo yum-config-manager --enable epel);sudo yum-config-manager --disable repository_name(如sudo yum-config-manager --disable epel)。若遇到软件包安装失败或缓存异常,可清理缓存:
sudo yum clean all(CentOS 8及以上用dnf clean all)。
gpgcheck=1,并导入对应GPG密钥(如EPEL的密钥可通过rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL导入);yum-plugin-priorities插件:sudo yum install yum-plugin-priorities -y,然后在仓库配置文件中添加priority=数字(数字越小优先级越高,官方源设为1,第三方设为5以上)。