如何检查我是否安装了与系统上完全相同的 deb

如何检查我是否安装了与系统上完全相同的 deb

在为公司内部项目构建软件包时,有时我们会忘记软件包来源,只有二进制 .deb。更糟糕的是,软件包构建者可能会将其安装到生产系统上,但忘记将其放入 yum 中,然后离开公司。将来的某个时候,我们需要构建一个新服务器,并希望确保我们在工程师主目录中找到的 .deb 与现有服务器上的 .deb 完全匹配。有没有办法找出 .deb 是否完全相同?

在基于 rpm 的系统上,我会执行以下操作

old-server$ rpm -qi foo

new-server$ rpm -qi -p foo-1.2.3.rpm

并比较大小、构建日期、构建主机,如果它们匹配,那么我知道我有我需要的精确 rpm。

在基于 dpkg 的系统上是否有等效的方法可以做到这一点?

我看到 dpkg-query 可以返回某些数据的 MD5,但是手册页说它与 dselect 相关,我无法从中获取任何数据。

答案1

您可以执行dpkg -l <packagename>并查看软件包是否已安装以及其版本。如果您没有关于版本号等的某种指导原则(例如,在更改代码并发布/安装时,您应该增加版本号),则此方法可能不起作用

答案2

我想将系统上安装的文件与软件包内的文件进行比较应该能给你一个好主意吧?你可以使用 从 *.deb 文件中提取文件,dpkg -x <deb-filename> <directory-to-extract-in>也可以使用 列出已安装软件包安装的所有文件dpkg -L <package-name>

当您有这些信息时,您应该能够比较文件名、文件日期、校验和或任何您想要的内容……

相关内容