如何检查MD5在Debian / Ubuntu Linux中安装的软件包总数

MD5总和是32位字节字符串,由针对远程文件或ISO的特定文件或ISO位对位副本运行md5sum算法而产生。

你有没有想过为什么一个给定的二进制文件或软件包安装在你的系统上不工作,根据你的期望,这意味着它不能正常工作,因为它应该做,也许它不能事件开始。

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

考虑到这是在您的系统上维护未损坏包的一个重要因素,因此,使用以下文章是验证文件系统上的文件与存储在包中的信息的重要步骤。

建议阅读: 学习如何生成和验证文件与MD5校验和在Linux中

如何验证安装的Debian软件包对MD5校验和

Debian / Ubuntu的系统,您可以使用debsums工具来检查安装包的MD5校验和。 如果你想在安装之前了解debsums包中的信息,您可以使用APT-CACHE像这样:

$ apt-cache search debsums

接下来,使用安装它易于命令如下:

$ sudo apt install debsums

现在,它的时间来学习如何使用debsums工具来验证安装的软件包的md5sum。

:我已经使用sudo的下面所有的命令,因为某些文件可能无法为普通用户读取权限。

此外,从debsums命令的输出显示你的左边和右边的检查结果文件位置。 有三个可能的结果,你可以得到,他们包括:

  1. OK -表示文件的MD5校验还是不错的。
  2. 失败 -显示文件的MD5校验和不匹配。
  3. REPLACED -是指特定的文件已被取代从另一个包中的文件。

当你没有任何选项运行它,debsums系统对股票的md5sum文件上的每个文件的检查。

$ sudo debsums
扫描文件系统为MD5求和
/usr/bin/a11y-profile-manager-indicator                                       OK
/usr/share/doc/a11y-profile-manager-indicator/copyright                       OK
/usr/share/man/man1/a11y-profile-manager-indicator.1.gz                       OK
/usr/share/accounts/providers/facebook.provider                               OK
/usr/share/accounts/qml-plugins/facebook/Main.qml                             OK
/usr/share/accounts/services/facebook-microblog.service                       OK
/usr/share/accounts/services/facebook-sharing.service                         OK
/usr/share/doc/account-plugin-facebook/copyright                              OK
/usr/share/accounts/providers/flickr.provider                                 OK
/usr/share/accounts/qml-plugins/flickr/Main.qml                               OK
/usr/share/accounts/services/flickr-microblog.service                         OK
/usr/share/accounts/services/flickr-sharing.service                           OK
/usr/share/doc/account-plugin-flickr/copyright                                OK
/usr/share/accounts/providers/google.provider                                 OK
/usr/share/accounts/qml-plugins/google/Main.qml                               OK
/usr/share/accounts/services/google-drive.service                             OK
/usr/share/accounts/services/google-im.service                                OK
/usr/share/accounts/services/picasa.service                                   OK
/usr/share/doc/account-plugin-google/copyright                                OK
/lib/systemd/system/accounts-daemon.service                                   OK
/usr/lib/accountsservice/accounts-daemon                                      OK
/usr/share/dbus-1/interfaces/org.freedesktop.Accounts.User.xml                OK
/usr/share/dbus-1/interfaces/org.freedesktop.Accounts.xml                     OK
/usr/share/dbus-1/system-services/org.freedesktop.Accounts.service            OK
/usr/share/doc/accountsservice/README                                         OK
/usr/share/doc/accountsservice/TODO                                           OK
....

为了使每个包的任何更改每个文件和配置文件的检查,包括-a--all选项:

$ sudo debsums --all
检查MD5所有配置文件的总和
/usr/bin/a11y-profile-manager-indicator                                       OK
/usr/share/doc/a11y-profile-manager-indicator/copyright                       OK
/usr/share/man/man1/a11y-profile-manager-indicator.1.gz                       OK
/etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop           OK
/usr/share/accounts/providers/facebook.provider                               OK
/usr/share/accounts/qml-plugins/facebook/Main.qml                             OK
/usr/share/accounts/services/facebook-microblog.service                       OK
/usr/share/accounts/services/facebook-sharing.service                         OK
/usr/share/doc/account-plugin-facebook/copyright                              OK
/etc/signon-ui/webkit-options.d/www.facebook.com.conf                         OK
/usr/share/accounts/providers/flickr.provider                                 OK
/usr/share/accounts/qml-plugins/flickr/Main.qml                               OK
/usr/share/accounts/services/flickr-microblog.service                         OK
/usr/share/accounts/services/flickr-sharing.service                           OK
/usr/share/doc/account-plugin-flickr/copyright                                OK
/etc/signon-ui/webkit-options.d/login.yahoo.com.conf                          OK
/usr/share/accounts/providers/google.provider                                 OK
/usr/share/accounts/qml-plugins/google/Main.qml                               OK
/usr/share/accounts/services/google-drive.service                             OK
/usr/share/accounts/services/google-im.service                                OK
/usr/share/accounts/services/picasa.service                                   OK
/usr/share/doc/account-plugin-google/copyright                                OK
...

它也可以只检查不包括使用的所有其他软件包文件的配置文件-e--config选项:

$ sudo debsums --config
仅检查MD5配置文件总数
/etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop           OK
/etc/signon-ui/webkit-options.d/www.facebook.com.conf                         OK
/etc/signon-ui/webkit-options.d/login.yahoo.com.conf                          OK
/etc/signon-ui/webkit-options.d/accounts.google.com.conf                      OK
/etc/dbus-1/system.d/org.freedesktop.Accounts.conf                            OK
/etc/acpi/asus-keyboard-backlight.sh                                          OK
/etc/acpi/events/asus-keyboard-backlight-down                                 OK
/etc/acpi/ibm-wireless.sh                                                     OK
/etc/acpi/events/tosh-wireless                                                OK
/etc/acpi/asus-wireless.sh                                                    OK
/etc/acpi/events/lenovo-undock                                                OK
/etc/default/acpi-support                                                     OK
/etc/acpi/events/ibm-wireless                                                 OK
/etc/acpi/events/asus-wireless-on                                             OK
/etc/acpi/events/asus-wireless-off                                            OK
/etc/acpi/tosh-wireless.sh                                                    OK
/etc/acpi/events/asus-keyboard-backlight-up                                   OK
/etc/acpi/events/thinkpad-cmos                                                OK
/etc/acpi/undock.sh                                                           OK
/etc/acpi/events/powerbtn                                                     OK
/etc/acpi/powerbtn.sh                                                         OK
/etc/init.d/acpid                                                             OK
/etc/init/acpid.conf                                                          OK
/etc/default/acpid                                                            OK
...

接下来,只显示在debsums的输出更改的文件,使用-c--changed选项。 我没有在我的系统中找到任何更改的文件。

$ sudo debsums --changed

接下来的命令打印出的文件不具有的md5sum信息,这里我们用-l--list-missing选项。 在我的系统上,该命令不显示任何文件。

$ sudo debsums --list-missing

现在是时候通过指定名称来验证一个包的MD5校验

$ sudo debsums apache2 
检查MD5已安装软件包的总和
/lib/systemd/system/apache2.service.d/apache2-systemd.conf                    OK
/usr/sbin/a2enmod                                                             OK
/usr/sbin/a2query                                                             OK
/usr/sbin/apache2ctl                                                          OK
/usr/share/apache2/apache2-maintscript-helper                                 OK
/usr/share/apache2/ask-for-passphrase                                         OK
/usr/share/bash-completion/completions/a2enmod                                OK
/usr/share/doc/apache2/NEWS.Debian.gz                                         OK
/usr/share/doc/apache2/PACKAGING.gz                                           OK
/usr/share/doc/apache2/README.Debian.gz                                       OK
/usr/share/doc/apache2/README.backtrace                                       OK
/usr/share/doc/apache2/README.multiple-instances                              OK
/usr/share/doc/apache2/copyright                                              OK
/usr/share/doc/apache2/examples/apache2.monit                                 OK
/usr/share/doc/apache2/examples/secondary-init-script                         OK
/usr/share/doc/apache2/examples/setup-instance                                OK
/usr/share/lintian/overrides/apache2                                          OK
/usr/share/man/man1/a2query.1.gz                                              OK
/usr/share/man/man8/a2enconf.8.gz                                             OK
/usr/share/man/man8/a2enmod.8.gz                                              OK
/usr/share/man/man8/a2ensite.8.gz                                             OK
/usr/share/man/man8/apache2ctl.8.gz                                           OK

假设你正在运行debsums为没有sudo一个普通用户,则可以通过使用权限处理错误,警告--ignore-permissions选项:

$ debsums --ignore-permissions 

如何从.Deb文件生成MD5和

-g选项告诉debsums来生成的deb内容,其中MD5校验:

  1. 失踪 -指导debsums生成从DEB MD5校验和的软件包可以不提供的。
  2. 所有 -引导debsums忽略磁盘上的款项,并在DEB文件中使用一个存在,或者如果不存在,从它产生的。
  3. 保持 -告诉debsums将提取出的/生成的资金以/var/lib/dpkg/info/package.md5sums文件。
  4. NOCHECK -是指提取/产生的款项不会检查对已安装的软件包。

当你在目录中的内容/var/lib/dpkg/info/ ,你会看到打包,如下图中的各种文件的md5sum:

$ cd /var/lib/dpkg/info
$ ls *.md5sums
列出包裹的所有MD5总和
a11y-profile-manager-indicator.md5sums
account-plugin-facebook.md5sums
account-plugin-flickr.md5sums
account-plugin-google.md5sums
accountsservice.md5sums
acl.md5sums
acpid.md5sums
acpi-support.md5sums
activity-log-manager.md5sums
adduser.md5sums
adium-theme-ubuntu.md5sums
adwaita-icon-theme.md5sums
aisleriot.md5sums
alsa-base.md5sums
alsa-utils.md5sums
anacron.md5sums
apache2-bin.md5sums
apache2-data.md5sums
apache2.md5sums
apache2-utils.md5sums
apg.md5sums
apparmor.md5sums
app-install-data.md5sums
app-install-data-partner.md5sums
...

请记住,使用-g选项相同--generate=missing ,您可以尝试通过运行以下命令生成的Apache2包的MD5总和。

$ sudo debsums --generate=missing apache2 

由于我的系统上的Apache2包已经有MD5校验和,它会显示下面的输出,这是一样的运行:

$ sudo debsums apache2

欲了解更多有趣的选择和使用信息,看看通过debsums手册页。

$ man debsums

在这篇文章中,我们分享如何验证安装的Debian / Ubuntu的软件包针对MD5校验,这可能是有用的,以避免安装和检查对存储在信息的文件系统中的文件执行你的系统上损坏的二进制文件或程序包文件包装。

对于任何问题或反馈,请利用下面的评论表。 想象一下,你可以提供一两个建议,使这个职位更好。