在 YUM(Yellowdog Updater, Modified)中,仓库(Repository)源配置决定了从哪里获取软件包。根据仓库源的位置,YUM 可以分为以下几种类型:
- 网络源:YUM 从远程服务器或镜像站点下载软件包。
- 本地源:YUM 从本地磁盘(如 ISO 镜像或本地存储的 RPM 包)获取软件包。
- 局域网源:YUM 从内网或局域网中的服务器获取软件包,通常用于企业环境,确保企业内的机器能访问到本地的软件包。
下面我将详细介绍如何配置这三种 YUM 仓库源。
1. 网络源配置(Remote Repository)
网络源是 YUM 最常用的仓库配置方式。它从公共的远程镜像站点获取软件包。网络源通常配置为使用 baseurl
或 mirrorlist
,baseurl
直接指定一个仓库地址,而 mirrorlist
会提供多个镜像地址,YUM 会根据网络情况选择最合适的源。
配置步骤:
- 打开
/etc/yum.repos.d/
目录。 - 创建或编辑一个
.repo
文件(例如centos.repo
)。 - 配置仓库信息。
示例:
[base]
name=CentOS 7 - Base
baseurl=http://mirror.centos.org/centos/7/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS 7 - Updates
baseurl=http://mirror.centos.org/centos/7/updates/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
解释:
baseurl
:指定仓库的 URL 地址。enabled
:启用仓库(1
表示启用,0
表示禁用)。gpgcheck
:启用或禁用 GPG 签名检查(1
表示启用)。gpgkey
:指定 GPG 密钥 URL,用于验证软件包的签名。
使用 mirrorlist
配置镜像源
[base]
name=CentOS 7 - Base
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
mirrorlist
:此 URL 返回一个可用镜像的列表,YUM 会自动选择最合适的镜像。
2. 本地源配置(Local Repository)
本地源通常用于离线安装或网络受限环境。你可以将软件包存放在本地目录或 ISO 镜像中,并配置 YUM 从本地获取。
配置步骤:
- 将 RPM 包或 ISO 镜像挂载到本地目录。
- 创建一个
.repo
配置文件,指定file://
协议来访问本地路径。
示例:
假设将 ISO 镜像挂载到 /mnt/cdrom
,则可以按如下方式配置本地仓库:
[local]
name=Local Repository
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=0
baseurl=file:///mnt/cdrom/
:指向本地挂载目录。gpgcheck=0
:禁用 GPG 签名检查,因为本地源不需要进行签名验证。
使用 RPM 包作为本地源
如果你有一个存放在本地的 RPM 包目录,可以使用以下配置:
[local-rpms]
name=Local RPM Repository
baseurl=file:///home/user/rpms/
enabled=1
gpgcheck=0
baseurl=file:///home/user/rpms/
:指定 RPM 包所在的本地目录。
3. 局域网 YUM 源配置(Local Network Repository)
局域网 YUM 源是指在企业内部网络中搭建 YUM 仓库服务器,其他机器通过网络访问该仓库。这样可以减轻外部网络带宽负担,并确保内部环境中所有机器使用一致的软件版本。
配置步骤:
-
搭建 YUM 仓库服务器:
- 将软件包存放在服务器上(可以是 RPM 包或者是通过 ISO 镜像)。
- 使用 HTTP 或 FTP 服务器(如 Apache、Nginx)将仓库目录公开。
-
配置仓库服务器的 HTTP 服务器: 在仓库服务器上,创建一个目录来存放 RPM 包。例如,将软件包存放在
/var/www/html/repo/
目录下,并配置 Apache 服务器共享该目录。配置 Apache 共享目录(
/etc/httpd/conf/httpd.conf
):<Directory "/var/www/html/repo"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
启动 Apache 服务:
systemctl start httpd systemctl enable httpd
-
创建 YUM 仓库元数据: 在仓库目录中,使用
createrepo
工具生成 YUM 仓库元数据。createrepo /var/www/html/repo/
-
配置客户端 YUM 源: 在客户端机器上,创建或编辑
.repo
文件,指向局域网仓库服务器。
示例:
[local-network]
name=Local Network Repository
baseurl=http://your.repo.server/repo/
enabled=1
gpgcheck=1
gpgkey=http://your.repo.server/repo/RPM-GPG-KEY-your-repo
baseurl=http://your.repo.server/repo/
:指向局域网仓库服务器的 URL。
配置注意事项:
- 确保客户端机器可以访问仓库服务器的 URL。
- 如果使用 GPG 签名检查,需要在仓库服务器上配置 GPG 密钥,并将其提供给客户端。
- 仓库服务器需要配置为能够处理多个客户端的请求,通常通过 HTTP 或 FTP 协议提供服务。
4. 总结
- 网络源:配置远程镜像站点或仓库,通过
baseurl
或mirrorlist
来指定仓库位置。适用于常规的在线安装和更新。 - 本地源:适用于没有互联网连接的情况,软件包存放在本地目录或 ISO 镜像中,YUM 通过
file://
协议访问本地源。 - 局域网源:适用于企业或大规模部署,构建内部 YUM 仓库,通过 HTTP 或 FTP 服务器共享软件包,其他机器通过内网访问。
每种源的配置都有其特定的应用场景,使用时可以根据实际需求选择合适的仓库类型来保证软件包的管理和安装。