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


14

我已经安装了Apt-Cacher NG来为多台计算机提供程序包缓存。因此,我认为aptitude / apt-get在中保留自己的(第二个)缓存毫无意义/var/cache/apt/archives。我知道可以使用清空此缓存sudo apt-get clean,但是有某种方法可以配置apt-get在安装完成后自动清除缓存?


我正在尝试做与使用许多LXC进行实验并保持个人计算机清洁相同的操作。这些LXC之一是我的apt-cacher-ng,但是现在我想防止所有其他实例(包括“真实”实例)保持存档状态。
jgomo3年

Answers:


9

根据文档,您可以根据的手册将配置文件添加到/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

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


我发现仅将高速缓存路径设置为空路径在运行apt:时出现错误Archives directory archives/partial is missing. - Acquire (2: No such file or directory)。解决此错误的方法是也将其设置Dir::Cache::archives为空路径。我已经更新了您的答案以包括此内容(假设某人的销售代表批准了该修改)。
布莱尔

1
实际上,将它们设置为空白路径不起作用。我这样做了,然后安装并删除了一个软件包。要再次安装它,我得到Need to get 0 B/21.9 MB of archives指示存在缓存版本。环顾四周,结果发现它们被缓存在文件系统的根目录中……并非我所想要的!除非我们都错误地阅读了apt.conf的手册页,否则手册页是错误的或存在错误。我想我会坚持第二种方法。
布莱尔

4
我已经Dir::Cache::Archive "";bugs.launchpad.net/apt/+bug/937951中报告了该错误 。设置完后,请勿运行,apt-get clean因为它将删除根目录(/)中的所有文件。
Lekensteyn

2
根据错误,Dir::Cache::Archive是错误的配置变量;这应该是Dir::Cache::{src,}pkgcache
杰里米·克尔

1
此错误已在更高版本中修复吗?
9

-2

我认为您正在寻找的是:

/etc/apt/apt.conf.d$ cat 04autoclean
APT::Clean-Installed "true";
/etc/apt/apt.conf.d$ 

2
该命令不会更改任何内容-它仅显示04autoclean(在/etc/apt/apt.conf.d目录中运行时)的内容。你是说布莱尔应该改变的内容04autoclean是这样APT::Clean-Installed设置为"true"
伊莱亚·卡根

1
这只会控制apt-get autoclean行为方式。来自apt-get(8):“配置选项APT :: Clean-Installed如果将其设置为off,则将防止擦除已安装的软件包。”
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.