安装、更新和删除(必要时)已安装的程序是系统管理员日常工作中的关键职责。当一台机器连接到互联网时,可以使用包管理系统(例如aptitude(或apt-get)、yum或zypper,取决于您选择的发行版,在LFCE(Linux Foundation Certified Engineer)系列的第9部分-Linux软件包管理中有解释。您还可以下载独立的.deb或.rpm文件,并分别使用dpkg或rpm进行安装。

介绍Linux基金会认证计划
然而,当一台机器无法访问全球网络时,就需要其他方法。为什么会有人想这么做呢?原因包括节省互联网带宽(避免与外部的多个并发连接)、在本地安全地编译源代码生成的软件包,以及提供由于法律原因(例如在某些国家受限制的软件)无法包含在官方存储库中的软件包的可能性。
这正是网络存储库发挥作用的地方,这也是本文的核心主题。
我们的测试环境
Network Repository Server: CentOS 7 [enp0s3: 192.168.0.17] - dev1 Client Machine: CentOS 6.6 [eth0: 192.168.0.18] - dev2
在CentOS 7上设置网络存储库服务器
作为第一步,我们将处理安装和配置一个CentOS 7盒子作为存储库服务器[IP地址192.168.0.17]和一个CentOS 6.6机器作为客户端。openSUSE的设置几乎相同。
对于CentOS 7,按照以下文章中的步骤说明进行安装,并学习如何设置静态IP地址。
至于Ubuntu,在该网站上有一篇很好的文章,逐步解释了如何设置自己的私有存储库。
我们首选客户端访问存储库服务器的方式 – FTP和HTTP是最常用的。我们将选择后者,因为Apache的安装已在LFCE系列的第1部分 – 安装Apache中介绍过。这也将允许我们使用Web浏览器显示软件包列表。
接下来,我们需要创建目录以存储.rpm软件包。我们将在/var/www/html/repos内相应地创建子目录。为了方便起见,我们可能还想创建其他子目录来托管每个发行版不同版本(当然我们稍后还可以添加尽可能多的目录)甚至不同架构的软件包。
设置仓库
在设置自己的仓库时,需要考虑的一个重要问题是,你需要有相当大的可用磁盘空间(~20 GB)。如果没有,请调整计划存储仓库内容的文件系统大小,或者更好是添加一个额外的专用存储设备来托管仓库。
说到这里,我们将首先创建用于托管仓库的结构目录:
# mkdir -p /var/www/html/repos/centos/6/6
在为我们的仓库服务器创建目录结构之后,我们将在/var/www/html/repos/centos/6/6中使用createrepo初始化跟踪包及其依赖关系的数据库。
如果你还没有安装createrepo,请安装:
# yum update && yum install createrepo
然后初始化数据库,
# createrepo /var/www/html/repos/centos/6/6

更新仓库
假设仓库服务器能够访问互联网,我们将从在线仓库拉取软件包的最新更新。如果情况不是这样,你仍然可以从CentOS 6.6安装光盘中复制包目录的整个内容。
在本教程中,我们将假设第一种情况。为了优化我们的下载速度,我们将选择一个离我们位置较近的CentOS 6.6镜像。前往CentOS下载镜像并选择离您位置更近的一个(在我的情况下是阿根廷):

然后,转到突出显示的链接中的os目录,然后选择适当的架构。一旦在那里,复制地址栏中的链接并下载内容到存储库服务器的专用目录中:

# rsync -avz rsync://centos.ar.host-engine.com/6.6/os/x86_64/ /var/www/html/repos/centos/6/6/
如果所选的存储库因某种原因离线,可以返回并选择另一个。没关系。
现在可能是您想要放松一下,也许观看一集您最喜欢的电视节目的时候,因为镜像在线存储库可能需要相当长时间。
下载完成后,可以使用以下命令验证磁盘空间的使用情况:
# du -sch /var/www/html/repos/centos/6/6/*

最后,更新存储库的数据库。
# createrepo --update /var/www/html/repos/centos/6/6
您可能还想启动您的网络浏览器并导航到repos/centos/6/6目录,以验证您是否可以看到内容:

现在您可以开始配置客户端了。
Source:
https://www.tecmint.com/setup-yum-repository-in-centos-7/