什么是“包管理器缓存”(pacman、apt)?

什么是“包管理器缓存”(pacman、apt)?

我有几个关于 Linux 包管理器的问题:

  • “包管理器缓存”到底是什么?
  • 我应该保留它还是完全清理它是否安全?
  • 如果完全清除缓存会出现什么问题?
  • 如果我清除缓存,我的软件包会自动更新吗?
  • 该缓存中存储什么类型的数据?

语境:

  • Arch Linux 中的“pacman”
  • Debian 中的“apt”

答案1

这个答案将重点关注apt,但这些原则通常适用于包管理器。

包管理器跟踪不同的信息;尤其

  • 系统上安装的软件包的详细信息
  • 存储库中可用软件包的详细信息
  • 可能是包的档案

除此之外,他们还可能维护该信息的不同形式,或对该信息进行的计算结果(例如依赖树),并使用它们来加速操作。

apt的例子中,apt缓存(由 操纵apt-cache)是后者:可用于 的包信息的优化表示apt。它存在于/var/cache/apt/pkgcache.bin并且可以通过以下方式查看其统计数据

apt-cache stats

删除它会导致它在下次需要时重新创建,除了造成延迟之外不会产生任何不利影响。

除此之外,还在 ;apt中维护一个包缓存/var/cache/apt/archives;这就是apt-get clean和清理的内容apt-get autoclean。从此缓存中删除的任何文件也将在下次需要时检索(如果可能),除了获取它们所需的延迟、需要在线检索它们以及文件可能会被删除之外,不会产生任何不利影响。不再可用。

存储库中可用软件包的详细信息未列为缓存,但从技术上讲它们是,因为如果删除它们也可以下载;这就是它的apt-get update作用。默认情况下apt,此信息存储在下的文件中/var/lib/apt- 请注意使用/var/lib而不是/var/cache。请注意,这些文件将不是如果它们被删除,则会自动检索。

系统唯一重要且不易重新创建的数据是系统中安装的软件包的信息。在apt基于 的系统中,它由 管理dpkg并存在于 中/var/lib/dpkg

apt基于 的系统上,软件包更新依赖于 检索到的信息apt-get update;如果定期运行,任何丢失的缓存都将被填充,并且依赖于缓存数据的任何其他操作都将继续(包括包升级,无论以何种方式应用)。

相关内容