你们中的某些人可能共享以下用例:您需要(或想要)镜像存储库,以为未连接到Internet的LAN上的主机提供软件包,因此无法直接访问上游存储库。在本文中,我将说明如何使用reposync随Red Hat Enterprise Linux(RHEL)7或Red Hat Enterprise Linux 8订阅附带的轻松完成此任务。
在开始之前,我想指出重要的要求。您想要镜像的每个存储库都需要一个有效的订阅,因为镜像服务器只能同步其自己的订阅中包括的那些存储库。您将使用此镜像的所有其他主机也需要具有有效的订阅。
为Red Hat Enterprise Linux 7设置镜像存储库
首先,您需要选择将镜像存储库提供给LAN的Web服务器。然后,如果您使用的是Red Hat Enterprise Linux 7,则要创建基本的存储库,必须先安装createrepo。不用担心,该工具也包含在您的订阅中。使用以下命令将其安装在您的Web服务器上:# yum install yum-utils createrepo
接下来,您需要您要同步的存储库的存储库ID。运行yum repolist,您将在输出的第一列中找到回购ID:$ yum repolistLoaded plugins: langpacks, nvidia, product-id, search-disabled-repos, subscription-
: managerrepo id repo name statusrhel-7-server-optional-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server - O 19.490rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RP 26.766virtualbox/7Server/x86_64 Oracle Linux / RHEL / CentOS-7Server 77
在这种情况下,rhel-7-server-rpms是标准Red Hat Enterprise Linux 7存储库的ID。您可以使用以下命令获取订阅可以访问的存储库的完整列表:$ sudo subscription-manager repos --list
您也可以在其中找到回购ID。
例如,要同步rhel-7-server-rpms仓库中的软件包并创建基本的本地存储库,请执行以下命令:# reposync --gpgcheck -l --repoid=rhel-7-server-rpms --download_path=/var/www/html # Sync RPMS# cd /var/www/html/rhel-7-server-rpms# createrepo -v /var/www/html/rhel-7-server-rpms # Create the repo
为Red Hat Enterprise Linux 8设置镜像存储库
对于Red Hat Enterprise Linux 8,此过程甚至更加容易。您只需要以下reposync命令:# reposync -p --download-metadata --repo=
createrepo不再需要该命令,因为会reposync下载所有内容,包括repodata。
共享本地存储库
一旦使用这些方法之一获取了软件包并创建了本地存储库,就可以使用简单的Web服务器,FTP或NFS在脱机/断开连接的系统之间分发本地存储库。以下知识库文章提供有关您选择发行版本的必要信息:
要获得比本文中描述的更为复杂的设置,请考虑使用Red Hat Satellite。