CentOS 本地 YUM 源
背景介绍
YUM(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器,它基于 RPM 软件包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
一、制作本地 YUM 源的原因
尽管 YUM 源可以简化在 Linux 上安装软件的过程,但在生成环境中通常无法上网,不能连接外网的 YUM 源,因此就无法使用 yum 命令安装软件了,为了在内网中也可以使用 yum 安装相关的软件,需要配置 YUM 源。
二、YUM 源的原理
YUM 源其实就是一个保存了多个 RPM 包的服务器,可以通过 http 的方式来检索、下载并安装相关的 RPM 包。
三、制作本地 YUM 源的步骤
准备环境
确保有一台 Linux 服务器,这里以 CentOS 为例。
准备 CentOS 的 ISO 镜像文件,CentOS7x86_64Everything1810.iso。
挂载镜像并创建目录
创建挂载点:
mkdir /mnt/cdrom
挂载镜像到指定目录:
mount t auto /path/to/CentOS7x86_64Everything1810.iso /mnt/cdrom
复制文件并配置本地 YUM 源
将镜像文件复制到本地目录:
cp r /mnt/cdrom /var/www/html/centos7
修改本地 YUM 源配置文件:
备份原有的 YUM 源配置文件:
cd /etc/yum.repos.d/ mv ./*.repo .bak/
创建新的本地 YUM 源配置文件,local.repo:
[base] name=Local Repository baseurl=file:///var/www/html/centos7 gpgcheck=0 enabled=1
重建 YUM 缓存并测试
清除原来的 YUM 缓存,然后重新本地化 YUM 缓存:
yum clean all yum makecache yum repolist
测试安装软件,httpd:
yum install y httpd
四、通过 HTTPD 发布 YUM 源
除了直接使用本地文件作为 YUM 源,还可以通过 HTTPD 服务来发布 YUM 源,使得其他机器可以通过网络访问这个内网中的 YUM 源。
安装 HTTPD 并启动服务
安装 HTTPD:
yum install y httpd
启动 HTTPD 服务:
systemctl start httpd
2. 配置 HTTPD 以发布 YUM 源
确保防火墙允许 HTTP 流量:
firewallcmd permanent addservice=http firewallcmd reload
验证 YUM 源是否可以正常访问:
curl http://<server_ip>/centos7/
五、客户端配置本地 YUM 源
在其他需要使用这个本地 YUM 源的机器上,进行以下配置:
1. 备份并删除原有的 YUM 源配置文件
cd /etc/yum.repos.d/ mv ./*.repo .bak/
2. 创建新的本地 YUM 源配置文件,local.repo:
[base] name=Local Repository baseurl=http://<server_ip>/centos7 gpgcheck=0 enabled=1
重建 YUM 缓存并测试
yum clean all yum makecache yum repolist
至此,我们已经成功配置了 CentOS 的本地 YUM 源,并在客户端进行了相应的配置,这样,即使在没有外网连接的情况下,也可以在内网中使用 yum 安装和管理软件包。