关于Linux包管理器,我有几个问题:
上下文:
发布于 2022-02-08 09:20:43
这个答案将侧重于apt,但这些原则一般适用于包管理器。
包管理器跟踪不同的信息;特别是
除此之外,它们还可以维护不同形式的信息,或者对信息进行计算的结果(例如依赖树),并使用这些信息来加速操作。
在apt的S案例中,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-based系统中,这是由dpkg管理并生活在/var/lib/dpkg中的。
在apt-based系统上,包更新依赖于apt-get update检索的信息;如果定期运行,则将填充任何丢失的缓存,并将根据缓存的数据进行任何其他操作(包括包升级,无论它们是以何种方式应用)。
https://unix.stackexchange.com/questions/689754
复制相似问题