下面是 centos 系统搭建本地 yum 服务器的详细攻略:
步骤1:安装 httpd 服务器httpd 是进行 http 网络服务的最基础软件之一,我们要先安装它,执行以下命令:
sudo yum install httpd -y
步骤2:启动 httpd 服务器
安装 httpd 后,还需要启动 httpd 服务器才能供客户端访问,如果没有安装 httpd,默认情况下其是关闭的。具体启动方法如下:
sudo systemctl start httpd
sudo systemctl enable httpd
其中,第一个命令是启动 httpd 服务器,第二个命令是将 httpd 服务器设为开机启动。
步骤3:下载软件包并发布如果从官方源中下载,需要耗费大量时间和带宽,所以我们通常使用多种方法从本地源发布软件包。一种广泛采用的方法是使用 createrepo
工具,该工具负责将软件包集合放在同一个目录下,并在该目录中创建元数据索引。下面是具体步骤:
- 创建本地存储库目录,并将所需的软件包上传到此目录中。
bash
sudo mkdir -p /var/www/html/repos/centos/7/base/x86_64
sudo cp /path/to/software/*.rpm /var/www/html/repos/centos/7/base/x86_64/
- 在刚刚的存储库目录中创建索引。
bash
sudo createrepo /var/www/html/repos/centos/7/base/x86_64
这个命令会在存储库目录中创建repo 文件并生成一个 repodata
目录,其中包含存储库中各个RPM包的元数据信息。
- 确认存储库配置是否被 httpd 服务器正确加载,因为 httpd 默认情况下只加载提供目录访问权限的目录。打开 httpd.conf 文件,确认增加以下内容:
“`bash
AllowOverride None
# Allow open access:
Require all granted
Alias /repos “/var/www/html/repos”
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
“`
- 重启 httpd 服务器以应用更改。
bash
sudo systemctl restart httpd
如果我们要切换到使用本地存储库,需要在客户端 /etc/yum.repos.d 目录中创建一个 .repo
文件,并进行以下配置:
[my-local-repo]
name=My Local Repo
baseurl=http://<yum-server-ip>/repos/centos/7/base/x86_64
enabled=1
gpgcheck=0
其中:
name
:yum 存储库的名称baseurl
:本地 yum 存储库的 URLenable=1
:允许使用存储库gpgcheck=0
:取消RPM包的 GPG 验证。如果团队使用了已签名的软件包,则需要将 GPG 签名注释或更改为对应的签名密钥。
这样,客户端就能够直接通过 yum 在本地访问软件包,例:
sudo yum install -y httpd
参考示例:
- 创建以桌面为主机名的本地存储库
bash
sudo mkdir -p /var/www/html/repos/centos/7/base/x86_64
sudo wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh epel-release-7*.rpm
sudo cp /var/cache/yum/x86_64/7/epel/packages/* /var/www/html/repos/centos/7/base/x86_64/
sudo createrepo /var/www/html/repos/centos/7/base/x86_64/
- 在客户端通过本地存储库安装软件包
bash
sudo rpm -Uvh http://<yum-server-ip>/repos/centos/7/base/x86_64/epel-release-7*.rpm