85510591 2016-10-19
你有没有想过为什么安装在你系统上的某个二进制文件或软件包没有按预期的那样来运行,或者说没有按正常的方式来运行,也许它根本就无法启动。
下载软件包时,你可能面临这些挑战:网络连接不稳定或者突然断电,这会导致安装的软件包受到损坏。
考虑到这是维护系统上未损坏软件包的一个重要因素,因而对照存储在软件包中的信息,验证文件系统上的文件是个重要步骤,为此需要阅读本文。
推荐阅读:《学会如何在Linux下生成MD5校验和并使用它来校验文件?》(http://www.tecmint.com/generate-verify-check-files-md5-checksum-linux/)
如何对照MD5校验和校验已安装的Debian软件包?
在Debian/Ubuntu系统上,你可以使用debsums工具来校验已安装软件包的MD5和。如果你想在安装之前知道关于debsums软件包的信息,可以使用APT-CACHE,就像这样:
下一步,使用apt命令来安装它,如下所示:
现在可以了解如何使用debsums工具,来校验已安装软件包的MD5和了。
说明:我在下面的所有命令中使用了sudo,因为普通用户可能没有某些文件的读取权限。
此外,来自debsums命令的输出在左边显示了文件位置,在右边显示了检验结果。你会得到三种可能的结果,它们包括:
如果你不用任何选项来运行,debsums会对照常规的md5sum文件来校验系统上的每个文件。
扫描文件系统、寻找MD5和
为了能够校验每个软件包的每个文件和配置文件,查找任何变化,请加入-a或--all选项:
校验所有配置文件的MD5和:
还有可能只校验配置文件,不包括软件包的其他所有文件,为此只要使用-e或--config选项:
只校验配置文件的MD5和:
下一步,如果想在debsums的输出中只显示变化的文件,请使用-c或--changed选项。我在自己的系统中没有找到任何变化的文件。
下一个命令输出没有md5sum信息的文件,这里我们使用-l和--list-missing选项。在我的系统上,该命令没有显示任何文件。
现在只要指定名称,就可以校验单一软件包的md5和:
校验已安装软件包的MD5和:
假设你以普通用户的身份运行debsums,没有sudo权限,那么可以使用--ignore-permissions选项,把权限错误当成警告:
如何利用.Deb文件生成MD5和?
-g选项告诉debsums利用deb内容生成MD5和,其中:
如果你看一下目录/var/lib/dpkg/info/的内容,就会看到各个文件的md5sum,如下图所示:
列出软件包的所有MD5和:
记住:使用-g选项与--generate=missing一样,你可以试着为apache2软件包生成md5和,只要运行下面这个命令:
由于我系统上的apache2软件包已经有md5和,它会显示下列输出,这与运行$ sudo debsums apache2的结果一样。
想了解更多有意思的选项和使用方面的信息,请参阅debsums参考手册页。
在本文中,我们介绍了如何对照MD5校验和校验已安装的Debian/Ubuntu软件包,为了避免在你的系统上安装和执行损坏的二进制文件或软件包文件,有必要对照软件包中存储的信息来校验文件系统上的文件。
若有任何问题或反馈,欢迎留言交流。
原文标题: How to Check MD5 Sums of Installed Packages in Debian/Ubuntu Linux,作者: Aaron Kili