您是否想知道为什么系统上安装的给定二进制文件或软件包无法按照您的预期工作,这意味着它无法按预期正常工作,或者甚至根本无法启动?
下载软件包时,您可能会面临网络连接不稳定或意外断电等挑战。这可能会导致安装损坏的软件包。
考虑到这是维护系统上软件包未损坏的重要因素,因此根据软件包中存储的信息验证文件系统上的文件是至关重要的一步。
在本文中,我们将解释如何验证已安装软件包的 MD5 校验和例如乌班图和薄荷。
在德班/乌班图系统,您可以使用debsums检查已安装软件包的 MD5 和的工具。如果您想在安装之前了解有关 debsums 软件包的更多信息,可以使用如下:
apt-cache search debsums
接下来,使用。
sudo apt install debsums

现在是时候学习如何使用debsums验证已安装软件包的 MD5 总和的工具。
笔记: 我用过sudo使用下面的所有命令,因为某些文件可能没有普通用户的读取权限。
了解 debsum 的输出
的输出debsums命令在左侧显示文件位置,在右侧显示检查结果。
您可以获得三种可能的结果:
- 好的– 表示文件的 MD5 和良好。
- 失败的– 显示文件的 MD5 和不匹配。
- 已更换– 表示特定文件已被另一个包中的文件替换。
当你在没有任何选项的情况下运行它时,debsums根据库存检查系统上的每个文件MD5总和文件。
sudo debsums

检查所有文件的 MD5 和是否有更改
要启用检查每个文件和配置文件的更改,请包括-a或者--all选项。
sudo debsums --all

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

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

列出丢失的文件 MD5 和
要显示没有 MD5 和信息的文件,请使用-l或者--list-missing选项。在我的系统上,此命令不显示任何文件。
sudo debsums --list-missing
验证单个包的MD5和
您还可以通过指定包的名称来验证单个包的 MD5 和。
sudo debsums curl

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

如何从 .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 和阿帕奇2通过运行以下命令进行打包:
sudo debsums --generate=missing apache2
由于我系统上的 apache2 软件包已经有 MD5 和,因此它将显示与运行相同的输出。
sudo debsums apache2

有关更多有趣的选项和使用信息,请查看 debsums 手册页:
man debsums
结论
在本文中,我们分享了如何根据 MD5 校验和验证已安装的 Debian/Ubuntu 软件包。通过根据包中存储的信息检查文件系统上的文件,这对于避免在系统上安装和执行损坏的二进制文件或包文件很有用。
如有任何问题或反馈,请随时使用下面的评论表。您还可以提供一两个建议来使这篇文章变得更好。
