我apt-cacher
在 Debian 服务器上使用,并使用apt-get update
16.04 客户端,我发现它阻止了一堆 repo 文件,包括icons-64x64[.tar[.gz]]
一些xz
扩展Metadata
和Components-*.yml
。
我已设法更新我的以下变量/etc/apt-cacher/apt-cacher.conf
以允许某些文件类型通过,但我仍然停留在Metadata
和Components-*.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 可以修复此问题。