你有没有想过为什么一个给定的二进制文件或软件包安装在你的系统上不工作,根据你的期望,这意味着它不能正常工作,因为它应该做,也许它不能事件开始。
在下载软件包时,您可能面临不稳定的网络连接或意外断电的挑战,这可能导致安装损坏的软件包。
考虑到这是在您的系统上维护未损坏包的一个重要因素,因此,使用以下文章是验证文件系统上的文件与存储在包中的信息的重要步骤。
建议阅读: 学习如何生成和验证文件与MD5校验和在Linux中
如何验证安装的Debian软件包对MD5校验和
在Debian / Ubuntu的系统,您可以使用debsums工具来检查安装包的MD5校验和。 如果你想在安装之前了解debsums包中的信息,您可以使用APT-CACHE像这样:
$ apt-cache search debsums
接下来,使用安装它易于命令如下:
$ sudo apt install debsums
现在,它的时间来学习如何使用debsums工具来验证安装的软件包的md5sum。
注 :我已经使用sudo的下面所有的命令,因为某些文件可能无法为普通用户读取权限。
此外,从debsums命令的输出显示你的左边和右边的检查结果文件位置。 有三个可能的结果,你可以得到,他们包括:
- OK -表示文件的MD5校验还是不错的。
- 失败 -显示文件的MD5校验和不匹配。
- REPLACED -是指特定的文件已被取代从另一个包中的文件。
当你没有任何选项运行它,debsums系统对股票的md5sum文件上的每个文件的检查。
$ sudo debsums
/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
/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
/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
/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校验:
- 失踪 -指导debsums生成从DEB MD5校验和的软件包可以不提供的。
- 所有 -引导debsums忽略磁盘上的款项,并在DEB文件中使用一个存在,或者如果不存在,从它产生的。
- 保持 -告诉debsums将提取出的/生成的资金以/var/lib/dpkg/info/package.md5sums文件。
- NOCHECK -是指提取/产生的款项不会检查对已安装的软件包。
当你在目录中的内容/var/lib/dpkg/info/
,你会看到打包,如下图中的各种文件的md5sum:
$ cd /var/lib/dpkg/info $ ls *.md5sums
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校验,这可能是有用的,以避免安装和检查对存储在信息的文件系统中的文件执行你的系统上损坏的二进制文件或程序包文件包装。
对于任何问题或反馈,请利用下面的评论表。 想象一下,你可以提供一两个建议,使这个职位更好。