如何防止 apt-get/aptitude 保留缓存

Bla*_*air 15 aptitude apt apt-cacher-ng

我已经安装了Apt-Cacher NG来为多台机器提供一个包缓存。因此,我认为让 aptitude/apt-get 将自己的(第二个)缓存保存在/var/cache/apt/archives. 我意识到我可以用 清空这个缓存sudo apt-get clean,但是有没有什么方法可以配置 apt-get 在安装完成后自动清理缓存?

sag*_*ise 10

根据文档,您可以将配置文件添加到/etc/apt/apt.conf.d/命名no-cache包含Dir::Cache "";Dir::Cache::archives "";根据apt.conf. 有一个错误报告提出了这种方法的问题,我不推荐它。

根据教程,还有一种方法:

echo 'DPkg::Post-Invoke {"/bin/rm -f /var/cache/apt/archives/*.deb || true";};' | sudo tee /etc/apt/apt.conf.d/clean
Run Code Online (Sandbox Code Playgroud)

这将rm在 apt 退出之前执行一个命令。

  • 我在 https://bugs.launchpad.net/apt/+bug/937951 报告了 `Dir::Cache::Archive "";` 错误。设置后,**不要运行 `apt-get clean`**,因为它会删除根目录 (`/`) 中的所有文件。 (4认同)
  • 实际上,将这些设置为空白路径是行不通的。我这样做了,然后安装并删除了一个包。再次安装时,我收到“需要获取 0 B/21.9 MB 的档案”,表明存在缓存版本。环顾四周,发现它们被缓存在文件系统的根目录中......这并不完全是我想要的!除非我们都错误地阅读了 apt.conf 的手册页,否则手册页是错误的或者存在错误。我想我会坚持第二种方法。 (2认同)
  • 根据错误,`Dir::Cache::Archive` 是错误的配置变量;这应该是`Dir::Cache::{src,}pkgcache`。 (2认同)