首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是“包管理器缓存”(pacman,apt)?

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

Unix & Linux用户
提问于 2022-02-08 08:53:00
回答 1查看 213关注 0票数 0

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

  • 什么是“包管理器缓存”?
  • 我应该保存它还是彻底清理它是安全的?
  • 如果缓存被完全清除,什么会出错?
  • 如果我清除缓存,我的包会自动更新吗?
  • 存储在这个缓存中的数据类型是什么?

上下文:

  • 来自Arch linux的"pacman“
  • Debian的"apt“
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-02-08 09:20:43

这个答案将侧重于apt,但这些原则一般适用于包管理器。

包管理器跟踪不同的信息;特别是

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

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

apt的S案例中,apt缓存(由apt-cache操纵)是后者:对apt可用的包信息的优化表示。它生活在/var/cache/apt/pkgcache.bin中,它的统计数据可以看到

代码语言:javascript
复制
apt-cache stats

删除它将使它在下一次需要的时候被重新创建,除了延迟之外,没有任何其他的负面影响。

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

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

对于系统来说,唯一不可缺少且不易重新创建的数据是安装在系统中的软件包上的信息。在apt-based系统中,这是由dpkg管理并生活在/var/lib/dpkg中的。

apt-based系统上,包更新依赖于apt-get update检索的信息;如果定期运行,则将填充任何丢失的缓存,并将根据缓存的数据进行任何其他操作(包括包升级,无论它们是以何种方式应用)。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/689754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档