apt-cacher and apt-cacher-ng are both caching proxy servers for the Advanced Package Tool (APT) package manager used in Debian-based Linux distributions. The main difference between apt-cacher and apt-cacher-ng lies in their implementation and features. apt-cacher is the original version, while apt-cacher-ng is a newer and more advanced version. apt-cacher-ng offers several improvements over apt-cacher, including better performance, increased stability, and enhanced security features. It also supports more protocols and has additional options for configuring cache behavior. Overall, apt-cacher-ng is considered to be a more reliable and feature-rich choice for caching APT packages.

究竟apt-cacher和apt-cacher-ng之间有什么区别?我似乎找不到任何比较这两者的地方。我找到了关于它们的教程和手册,从设置的角度来看它们似乎是一样的。
其中一个比另一个更好或更可靠吗?它们是否提供彼此不同的服务?每个选项的优缺点是什么?
1个回答

从文档中(如果您已安装,则可在/usr/share/doc/apt-cacher-ng/apt-cacher-ng.pdf找到):
该程序在其他著名代理程序apt-cacher 1.x(用Perl编写)的基础上重用了许多思想。与apt-cacher不同,apt-cacher-ng在开发过程中声明了不同的主要目标:
- 轻量级实现 - 允许在内存和处理资源较低的系统上使用 - 内部(本地)线程化 - 尽可能避免进程分叉,避免为伪线程同步而采取的修补措施,尽可能避免依赖特殊文件系统功能进行内部操作 - 真正(有效)支持HTTP流水线技术,使用具有本地流控制的内部客户端(带来的好处是减少资源开销和最小化可能的故障点) - 避免过多的功能扩展,如果可以通过本地操作系统功能提供相同的功能 - 在本地软件包池中可靠但高效地合并内容,避免传递错误数据。
与apt-cacher一样,明确跟踪动态更改和未更改的文件,并支持在非Debian环境中使用。
长话短说:并非所有目标都已实现。最初计划使用后台数据库合并来自任意位置的任何下载,但由于复杂性和性能考虑,该计划被放弃了,也无法找到可靠的启发式方法。相反,创建了一种半自动化解决方案,使用可机器解析的镜像信息文件,例如Debian在其CVS存储库中提供的文件。

你引用说:“在非Debian环境中使用是受支持的”... 这意味着我可以从不同的Linux发行版上提供Ubuntu软件仓库吗?只是确认一下,谢谢。 - a06e
@becko 我从未尝试过,但是 a) 它似乎不依赖于服务器的任何类似Debian的行为,b) 它可以作为其他发行版的代理工作。你应该能够在其他发行版上使用它。 - muru
@becko你可以使用apt-cacher-ng作为Fedora甚至Centos/RHEL基于的发行版的缓存,几乎不需要进行任何调整(如果我没记错,在上一份工作中实施时,只需允许缓存包含这些发行版仓库数据的xml文件)。 - user494660