apt-cacher 的 Regexp/config var 允许 16.04 客户端使用 repo 文件(元数据、Components-*.yml)吗?

apt-cacher 的 Regexp/config var 允许 16.04 客户端使用 repo 文件(元数据、Components-*.yml)吗?

apt-cacher在 Debian 服务器上使用,并使用apt-get update16.04 客户端,我发现它阻止了一堆 repo 文件,包括icons-64x64[.tar[.gz]]一些xz扩展MetadataComponents-*.yml

我已设法更新我的以下变量/etc/apt-cacher/apt-cacher.conf以允许某些文件类型通过,但我仍然停留在MetadataComponents-*.yml文件上。

我的/etc/apt/sources.list测试已经缩减为一行:

deb http://aptmirror:3142/au.archive.ubuntu.com/ubuntu/ xenial main restricted

apt-cacher 摘录:

index_files_regexp = ^(?:Index(?:\.bz2)?|Packages(?:\.gz|\.bz2|\.xz)?|Release(?:\.gpg)?|InRelease|Sources(?:\.gz|\.bz2)?|Contents-(?:[a-z]+-)?[a-zA-Z0-9]+\.gz|(?:srclist|pkglist)\.[a-z-]+\.bz2|release(?:\.gz|\.bz2)?|Translation-[a-z]{2,3}(?:_[A-Z]{2})?(?:\.gz|\.bz2|\.xz)?)$
installer_files_regexp = ^(?:vmlinuz|linux|initrd\.gz|changelog|NEWS.Debian|UBUNTU_RELEASE_NAMES\.tar\.gz(?:\.gpg)?|icons-64x64\.tar\.gz(?:\.tar)?|(?:Devel|EOL)?ReleaseAnnouncement(?:\.html)?|meta-release(?:-lts)?(?:-(?:development|proposed))?)$

错误:

# apt-get update
Get:1 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial InRelease [116 kB]
Get:2 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1,436 kB]
Get:3 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/main i386 Packages [1,431 kB]
Get:4 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/main Translation-en [732 kB]
Ign:5 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/main amd64 DEP-11 Metadata
Get:6 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/main DEP-11 64x64 Icons [414 kB]
Get:7 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [10.5 kB]
Get:8 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/restricted i386 Packages [10.8 kB]
Get:9 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/restricted Translation-en [3,420 B]
Ign:10 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/restricted amd64 DEP-11 Metadata
Err:5 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/main amd64 DEP-11 Metadata
  403  Forbidden
Err:10 http://aptmirror:3142/au.archive.ubuntu.com/ubuntu xenial/restricted amd64 DEP-11 Metadata
  403  Forbidden
Reading package lists... Done
W: Failed to fetch http://aptmirror:3142/au.archive.ubuntu.com/ubuntu/dists/xenial/main/dep11/Components-amd64.yml  403  Forbidden
W: Failed to fetch http://aptmirror:3142/au.archive.ubuntu.com/ubuntu/dists/xenial/restricted/dep11/Components-amd64.yml  403  Forbidden
E: Some index files failed to download. They have been ignored, or old ones used instead.

Components-(?:[a-z]+-)?[a-zA-Z0-9]+\.yml我尝试在上述变量的Metadata几个不同位置插入表达式,但没有任何成功。

有人能帮助我让它工作吗?

答案1

我有一个apt-cacher生动的。必须更改/etc/apt-cacher/apt-cacher.conf

ubuntu_release_names = dapper, edgy, feisty, gutsy, hardy, intrepid, jaunty, karmic, lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty, utopic, vivid, wily, xenial

index_files_regexp = ^(?:Index(?:\.bz2)?|(?:Sources|Packages|release)(?:\.gz|\.bz2|\.xz)?|Release(?:\.gpg)?|InRelease|Contents-(?:[a-z]+-)?[a-zA-Z0-9]+\.gz|(?:srclist|pkglist)\.[a-z-]+\.bz2|Translation-[a-z]{2,3}(?:_[A-Z]{2}(?:\.[a-zA-Z0-9-]+)?)?(?:\.gz|\.bz2|\.xz|\.lzma)?|Components-[a-z0-9]+\.yml(?:\.gz|\.bz2)?|icons-[0-9]+x[0-9]+\.tar(?:\.gz)?)$

答案2

当我尝试将我的镜像与 ubuntu 16.04 客户端一起使用时,我也遇到了与 ubuntu 12.04 的 apt-cacher-ng 相同的问题。

Canonical 推出了一个更新的软件包,无需任何额外的配置即可修复该问题。

答案3

也许可以添加(?:\.gz|\.bz2|\.xz)? 到您插入的表达式的末尾。在我最近的镜像上,唯一的*.yml文件实际上是*.yml.gz

我的安装apt-cacher-ng也遇到了同样的问题,按照您提到的方式修改它的正则表达式(另外,语法也略有不同)就解决了这个问题。

答案4

我在 Netgear ReadyNAS 上使用 debmirror 镜像 16.04 并遇到了这个问题。我目前的“修复”(尚无定论)是将 /usr/bin/debmirror 从 16.04 机器复制到 NAS,因为它只是一个 Perl 脚本,如果我正确研究了这个问题,则较新版本的 debmirror 可以修复此问题。

相关内容