apt-get:如何让它在升级软件包时在本地保留旧档案

apt-get:如何让它在升级软件包时在本地保留旧档案

我知道如果没有所需版本的存档的本地副本,我就无法安装以前的版本。但今天我发现了一些令人惊讶的事情:我确信所有以前的存档都存储在缓存中。但在我将 Firefox 从 v28 升级到 v29 并检查可安装的版本后,结果出乎我的意料:

$ apt-cache madison firefox
firefox | 29.0+build1-0ubuntu0.12.04.2 | http://archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages
firefox | 29.0+build1-0ubuntu0.12.04.2 | http://security.ubuntu.com/ubuntu/ precise-security/main i386 Packages
firefox | 11.0+build1-0ubuntu4 | http://archive.ubuntu.com/ubuntu/ precise/main i386 Packages

没有 28 版。我检查了一下/var/cache/apt/archives,确实没有 28 版的存档。删除了它,真可惜。

我怎样才能防止它删除旧档案?

答案1

Apt 缓存由每日 cron 作业管理。要修改默认设置,请打开(以 root 身份)/etc/apt/apt.conf.d/20archive

APT::Archives::MaxAge "30";
APT::Archives::MinAge "2";
APT::Archives::MaxSize "500";

要禁用自动删除,请将这三个值设置为0

请参阅顶部/etc/cron.daily/apt以了解这些选项的简要文档。

答案2

man apt-get

自动清洁:
与 clean 类似,autoclean 会清除本地存储库中检索到的软件包文件。不同之处在于,它只会删除无法再下载且基本无用的软件包文件。这样可以长期维护缓存,而不会失控。如果将配置选项 APT::Clean-Installed 设置为关闭,则会阻止删除已安装的软件包。

检查当前值apt-config dump|grep Clean

另外/etc/apt/apt.conf

APT::Clean-Installed "false";

另请参阅“autoclean”、“autoremove” 和 “clean” 选项之间有什么区别?

相关内容