为什么 dpkg 文件夹包含 2006 年的非常旧的文件?

为什么 dpkg 文件夹包含 2006 年的非常旧的文件?

我知道什么Debian 包管理说:

不要删除或更改/var/lib/dpkg/.

但是,该文件夹中有 11,501 个 2006 年的文件:

$ ls -l /var/lib/dpkg/info | wc -l  
11502

sudo find /var/lib/dpkg/info -type f -printf '%T+ %p\n' | sort  | head -n 20 | awk '{print $NF}' | xargs ls -l  
  
-rwxr-xr-x 1 root root   184 Jul 19  2008 /var/lib/dpkg/info/extra-xdg-menus.postrm  
-rw-r--r-- 1 root root    27 Aug 10  2006 /var/lib/dpkg/info/freepats.conffiles  
-rw-r--r-- 1 root root 12993 Aug 10  2006 /var/lib/dpkg/info/freepats.md5sums  

如何判断档案的状态以及正确的管理方法?

看到那里的日期为 2006 年的文件让我感到惊讶,因为这台小机器(Acer Aspire One 上网本)是 2008 年才发布的,在那之后的几年里我都没有得到它(它之前运行的是 Windows,在 Linux 给它提供了一个新生活)。

答案1

dpkg 安装的文件(包括 中的元数据文件)的修改时间/var/lib/dpkg/info是它们在包存档文件(.tar.gz或包含在.deb)内的修改时间。这通常是维护者最后一次更改手动写入的文件的时间。对于由包构建工具自动生成的文件,通常是构建包的时间,或者,可重复的构建,更改日志文件中最新条目的日期。它与安装包的时间无关。

一些包元数据文件在很长一段时间内没有发生变化也就不足为奇了。即使包的内容因为程序有更新、新功能等而发生变化,有些东西也不会经常改变。例如,.postrm脚本包含卸载的最后一步要做的事情,而大多数软件包根本不需要这样做;毫不奇怪,此时需要做的事情很少发生变化。在 的情况下freepats.md5sum.md5sum只要包发生变化,文件就会发生变化;这是一个数据文件(一些音频合成数据),多年来没有改变(它只是数据,没有代码,因此出现错误的风险相当低,而且没有人有兴趣对其进行任何增强)。

每个包平均有大约六个文件/var/lib/dpkg/info,Debian 倾向于将软件分割成细粒度的包(每个库都有自己的包,数据和文档通常与代码分开打包等)。因此,通常有大约 10k 个文件。

您的系统状态正常,无需采取任何措施。

答案2

文件的时间戳/var/lib/dpkg/info反映了它们上次更改的日期和时间。对于其中许多来说,这是包裹被送达的日期和时间建成:文件是在构建过程中生成的。在某些情况下,它是存储在源存档中的原始文件的时间戳。为了.list文件,它是安装包的日期和时间导致文件列表发生变化。的版本freepats目前 Debian 10最后更新于 2006 年...

/var/lib/dpkg/info然而,当清除相应的包时,确实会出现文件残留的情况。所有文件均以其所属包命名;删除扩展,然后检查该软件包是否已安装dpkg -l- 如果没有,您可以删除它们。

相关内容