如何使用 MD5 校验和验证 Debian 和 Ubuntu 软件包

您是否想知道为什么系统上安装的给定二进制文件或软件包无法按照您的预期工作,这意味着它无法按预期正常工作,或者甚至根本无法启动?

下载软件包时,您可能会面临网络连接不稳定或意外断电等挑战。这可能会导致安装损坏的软件包。

考虑到这是维护系统上软件包未损坏的重要因素,因此根据软件包中存储的信息验证文件系统上的文件是至关重要的一步。

在本文中,我们将解释如何验证已安装软件包的 MD5 校验和例如乌班图薄荷

德班/乌班图系统,您可以使用debsums检查已安装软件包的 MD5 和的工具。如果您想在安装之前了解有关 debsums 软件包的更多信息,可以使用如下:

apt-cache search debsums

接下来,使用。

sudo apt install debsums
在 Ubuntu 中安装 debsum

现在是时候学习如何使用debsums验证已安装软件包的 MD5 总和的工具。

笔记: 我用过sudo使用下面的所有命令,因为某些文件可能没有普通用户的读取权限。

了解 debsum 的输出

的输出debsums命令在左侧显示文件位置,在右侧显示检查结果。

您可以获得三种可能的结果:

  • 好的– 表示文件的 MD5 和良好。
  • 失败的– 显示文件的 MD5 和不匹配。
  • 已更换– 表示特定文件已被另一个包中的文件替换。

当你在没有任何选项的情况下运行它时,debsums根据库存检查系统上的每个文件MD5总和文件。

sudo debsums
验证已安装软件包的 MD5 校验和

检查所有文件的 MD5 和是否有更改

要启用检查每个文件和配置文件的更改,请包括-a或者--all选项。

sudo debsums --all
检查每个文件和配置是否有更改

仅检查配置文件的MD5和

还可以使用以下命令仅检查配置文件,排除所有其他包文件-e或者--config选项。

sudo debsums --config
检查配置文件的MD5和

仅显示更改的文件

要在 debsums 的输出中仅显示已更改的文件,请使用-c或者--changed选项。

sudo debsums --changed
检查修改的文件

列出丢失的文件 MD5 和

要显示没有 MD5 和信息的文件,请使用-l或者--list-missing选项。在我的系统上,此命令不显示任何文件。

sudo debsums --list-missing

验证单个包的MD5和

您还可以通过指定包的名称来验证单个包的 MD5 和。

sudo debsums curl
验证单个包的 MD5 校验和

忽略 Debsums 中的文件权限错误

假设您在没有 sudo 的情况下以普通用户身份运行 debsums,则可以使用以下命令将权限错误视为警告--ignore-permissions选项:

debsums --ignore-permissions
在没有 sudo 权限的情况下使用 Debsums

如何从 .Deb 文件生成 MD5 和

-g选项告诉debsums到从.deb内容。

以下是您可以使用的其他选项:

  • missing– 指示 debsums 从以下内容生成 MD5 和.deb对于不提供的软件包。
  • all– 指示 debsums 忽略磁盘上的总和并使用存在于.deb文件,或者如果不存在则从中生成一个。
  • keep– 告诉 debsums 将提取/生成的和写入/var/lib/dpkg/info/package.md5sums文件。
  • nocheck– 表示提取/生成的总和未根据已安装的软件包进行检查。

当你查看内容时/var/lib/dpkg/信息/目录中,您将看到软件包包含的各种文件的 MD5 和,如下所示:

cd /var/lib/dpkg/info
ls *.md5sums
列出已安装软件包中的 MD5 和文件

您可以生成 MD5 和阿帕奇2通过运行以下命令进行打包:

sudo debsums --generate=missing apache2

由于我系统上的 apache2 软件包已经有 MD5 和,因此它将显示与运行相同的输出。

sudo debsums apache2
为特定包生成 MD5 和

有关更多有趣的选项和使用信息,请查看 debsums 手册页:

man debsums
结论

在本文中,我们分享了如何根据 MD5 校验和验证已安装的 Debian/Ubuntu 软件包。通过根据包中存储的信息检查文件系统上的文件,这对于避免在系统上安装和执行损坏的二进制文件或包文件很有用。

如有任何问题或反馈,请随时使用下面的评论表。您还可以提供一两个建议来使这篇文章变得更好。