本地仓库更新

本地仓库更新

/var/www/html/centos/7我在目录中有一个本地存储库。在这里,下载了centos的所有rpm包。我将创建一个 crontab 来每 1 周或某某更新我的本地存储库。

我想了解一下有repocreate --update这个作用吗?或者我应该再次从centos repo下载所有软件包?

如果我应该从 centos repo 下载软件包,有没有办法跳过下载的软件包(它们位于/centos/7我提到的目录中)并只从 centos 下载新的(更新的)软件包?

更新

我已经找到了解决方案,但它对我不起作用。我创建了一个新目录 centos7/repo 并下载了一些文件来检查 rsync --ignore-existing 是否有效。但是每当我运行以下命令时,就会出现错误

failed to connect to ftp.linux.org.tr (193.140.100.100): Connection timed out (110)

rsync: failed to connect to ftp.linux.org.tr (2001:a98:11::100): Network is unreachable (101)

rsync error: error in socket IO (code 10) at clientserver.c(125) [Receiver=3.1.2]

命令是:

rsync -avz --ignore-existing rsync://ftp.linux.org.tr/centos/7/os/x86_64/ /var/www/html/centos7/repo/

我也尝试过其他镜子https://centos.org/download/mirrors/(此站点中也有 rsync 位置)。但它们都不起作用。有人可以验证 rsync 镜像是否有效吗?可能我无法通过端口 873 穿过防火墙。

无论如何,我可以通过端口 80 使用此 rsync 还是有其他方法来完成此任务? (我尝试了 zsync 但它需要 zsync 文件。)

答案1

如果您遇到 rsync 问题,那么您可以使用重新同步。它能够从系统中配置的存储库下载所有软件包(或--newest-only| -n)。所以脚本中的最终命令如下所示:

/usr/bin/reposync --repoid=updates --download_path=/var/www/html/centos7/repo/updates --newest-only
/usr/bin/createrepo /var/www/html/centos7/repo/updates

答案2

您可以尝试以下也支持rsync的镜像

http://mirror.nl.leaseweb.net/centos/

答案3

repoquery 查询您为系统配置的存储库中的每个包,然后将列表提供给 xargs 以使用 repotrack 下载所有包(新包而不是现有包)到您的服务器。

repoquery -a | xargs repotrack -a x86_64 -p .

如果您没有任何限制 rsync 守护进程端口的防火墙规则,则 rsync 解决方案也适用。

rsync -avz --ignore-existing rsync://ftp.linux.org.tr/centos/7/os/x86_64/ /var/www/html/centos7/repo/

相关内容