在 Debian 上运行 Gentoo distfiles 缓存镜像

在 Debian 上运行 Gentoo distfiles 缓存镜像

我的办公室局域网上有各种 Linux 主机。我在一台机器上运行 apt-cacher-ng 来缓存网络上所有 Debian 和 Ubuntu 机器的软件包下载。我们有几个 Gentoo 用户,我也想缓存他们的 distfiles 下载。

我已经在为 Gentoo 运行 rsync 镜像,事实证明它设置简单,而且可靠。

我想要的是http-复制器但实际上它仍然在维护,并且有一个 Debian Squeeze 包可用。我看过 Squid,但它太复杂了,我想要更简单的。我还看过波利波这似乎是正确的道路,但却遭受了这个致命的缺陷。

Gentoo 镜像上的所有 distfile 都是相同的,但是如果您尝试从不同的源镜像下载相同的文件,Polipo 会认为它是一个不同的文件,从而导致缓存未命中。http-replicator 没有遇到此问题,并且由于我没有管理所有的 Gentoo 盒,我认为我无法保证镜像选择的高度合规性,因为大多数人只是用 来做mirrorselect

所以我在寻找的是:

  1. 设置起来相当容易,不需要太多的操作或复杂的缓存过期设置
  2. 可以充当透明的 HTTP 代理
  3. 将提供相同的本地文件,即使它是从不同的服务器“下载”的
  4. 不需要镜像所有 Gentoo distfiles 的整个集合

这个要求太过分了吗?

答案1

您可以轻松使用 apt-cacher-ng。

Remap-gentoo: file:gentoo_mirrors http://distfiles.gentoo.org/ /gentoo ; file:backends_gentoo # Gentoo Archives

  • 在文件中gentoo_镜像,把所有想要捕捉的镜子放进去。
  • 在文件中后端,放入您要用于抓取的备份镜像。

这是创建 gentoo_mirrors 的脚本

# This fetches the live Gentoo mirrors list
# [email protected] - 2013/Dec/03
OUTFILE=gentoo_mirrors
URL=http://www.gentoo.org/main/en/mirrors3.xml
wget --save-headers -q $URL -O - \
| sed -n \
-e '/^[A-Z]/{s,^,#,g;p}' \
-e '/<mirrorgroup/{s,^,\n#,g;p}' \
-e '/<name/{s,^,#,g;p}' \
-e '/<uri/{/protocol="http"/{s/.*<uri[^>]\+>//g;s/<\/uri>//g;p}}' \
>$OUTFILE

来源:我是一名高级 Gentoo 开发人员,负责 Gentoo 基础设施。我已向上游 apt-cacher-ng 作者提交了上述变体。

相关内容