你有没有想过为什么安装在你系统上的某个二进制文件或软件包没有按预期的那样来运行,或者说没有按正常的方式来运行,也许它根本就无法启动。

下载软件包时,你可能面临这些挑战:网络连接不稳定或者突然断电,这会导致安装的软件包受到损坏。

考虑到这是维护系统上未损坏软件包的一个重要因素,因而对照存储在软件包中的信息,验证文件系统上的文件是个重要步骤,为此需要阅读本文。

如何对照MD5校验和校验已安装的Debian软件包?

在Debian/Ubuntu系统上,你可以使用debsums工具来校验已安装软件包的MD5和。如果你想在安装之前知道关于debsums软件包的信息,可以使用APT-CACHE,就像这样:

$ apt-cache search debsums

下一步,使用apt命令来安装它,如下所示:

$ sudo apt install debsums

现在可以了解如何使用debsums工具,来校验已安装软件包的MD5和了。

说明:我在下面的所有命令中使用了sudo,因为普通用户可能没有某些文件的读取权限。

此外,来自debsums命令的输出在左边显示了文件位置,在右边显示了检验结果。你会得到三种可能的结果,它们包括:

OK――表明某个文件的MD5和是好的。

FAILED――表明某个文件的MD5和不匹配。

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-onOK

/etc/acpi/events/asus-wireless-offOK

/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和,其中:

missing――指令debsums利用deb,为不提供MD5和的软件包生成MD5和。

all――指令debsums忽视磁盘上和,使用deb文件中存在的和,或者如果没有的话,就用它生成一个。

keep――指令debsums把提取/生成的和写入到/var/lib/dpkg/info/package.md5sums文件。

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

在本文中,我们介绍了如何对照MD5校验和校验已安装的Debian/Ubuntu软件包,为了避免在你的系统上安装和执行损坏的二进制文件或软件包文件,有必要对照软件包中存储的信息来校验文件系统上的文件。

若有任何问题或反馈,欢迎留言交流。

原文标题: How to Check MD5 Sums of Installed Packages in Debian/Ubuntu Linux,作者: Aaron Kili

Linux安装软件提示MD5不同,如何在Debian/Ubuntu Linux中校验已安装软件包的MD5和?相关推荐

  1. debian 安装_如何在 Debian/Ubuntu 系统中检查程序包是否安装?

    有很多种方法可以检查程序包是否已安装,我找到了 7 种命令,你可以从中选择你喜欢的使用. -- Magesh Maruthamuthu(作者) 我们近期发布了一篇关于批量程序包安装的文章.在此同时,关 ...

  2. debian 安装_如何在 Debian/Ubuntu 上手动安装安全更新? | Linux 中国

    在这个教程里面,我们会向你展示如何查看可用的安全更新,以及如何在 Ubuntu.LinuxMint 等等这些基于 Debian 的系统中安装它们.-- Magesh Maruthamuthu 在 Li ...

  3. 如何在ubuntu下安装detectron2_如何在 Debian/Ubuntu 上手动安装安全更新?

    在这个教程里面,我们会向你展示如何查看可用的安全更新,以及如何在 Ubuntu.LinuxMint 等等这些基于 Debian 的系统中安装它们. -- Magesh Maruthamuthu(作者) ...

  4. WIN10下安装Oracle提示无法添加用户XXXX到XXXX组中办法

    WIN10下安装Oracle提示"无法添加用户XXXX到XXXX组中"办法 一般安装过程中不会提示这样的错误.不幸的是我遇到了,然后记录分享一下解决方法: 1.找到安装日志文件 ( ...

  5. kail linux安装软件提示“无法定位软件包”解决方法

    kail linux安装软件提示"无法定位软件包"解决方法 参考文章: (1)kail linux安装软件提示"无法定位软件包"解决方法 (2)https:// ...

  6. win7 dll怎么在xp运行_win7电脑安装软件提示缺少vcruntime140.dll如何解决

    最近有位win7系统用户使用电脑安装office2016的时候,系统却提示"缺少vcruntime140.dll",这导致了office2016无法正常安装,用户不知道怎么解决,为 ...

  7. win7怎么安装nodejs_怎么解决win7安装软件提示

    使用win7系统的用户,自己在安装某个应用程序的时候系统提示"此程序被组策略阻止",导致了程序安装失败,其实这个问题可能是本地安全策略设置出的问题,那么怎么解决win7安装软件提示 ...

  8. 如何取消计算机阻止安装程序,Win10电脑安装软件提示“你必须取消阻止该发布者才能运行此软件”怎么办...

    我们在使用win10系统的时候,都会在电脑中安装各种各样的软件,但是有时候在安装软件的还是,会遇到一些提示,比如"你必须取消阻止该发布者才能运行此软件",导致安装软件失败,这该怎 ...

  9. 电脑故障扫描修复软件_电脑故障分析:电脑安装软件提示没有权限的解决方法...

    我们安装软件时如果没有权限就会导致安装故障,最近就有用户安装软件的时候出现了无法将数值写入键software的错误提示,请验证您对该键拥有足够的访问权限,或者与您的技术支持人员联系.那么遇到这种问题该 ...

  10. php自动下载 linux,Linux下软件、PHP和Perl的模块等都实现了自动安装

    Linux下软件.PHP和Perl的模块等都实现了自动安装,真的很方便,本文简单介绍一下. linux下可以使用yum工具,Redhat下自动带有: yum list php*   //可以查看php ...

最新文章

  1. xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b‘b\x14#e\xbc\
  2. 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(题解第二弹)
  3. CentOS 5 下yum安装 Mono 2.4
  4. Spring:笔记整理(1)——HelloWorld
  5. php正则表达式图谱
  6. JS:ES6-8 Promise入门
  7. 转帖:MySql日期格式化
  8. DICOM笔记-使用cmake编译DCMTK
  9. 彻底解决mac os 下javac Java命令行工具乱码问题
  10. 数字信号处理教程答案及解析(第五版)
  11. 使用百度开发者工具 4.0 搭建专属的小程序 IDE
  12. 制作和合入patch补丁
  13. JavaScript入门语法
  14. Banner是什么意思,网站banner设计与广告怎么做?
  15. 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm乐轩公司订餐系统
  16. 什么是动态DNS(DDNS)
  17. 制作MMORPG游戏需要储备哪些技术
  18. 【sketchup 2021】草图大师的辅助建模工具2【模型交错、照片匹配(重要)】
  19. 《曹云社》走进东软:奇妙的HR数字化
  20. arrayToJson将数组转化为json格式的js代码

热门文章

  1. 视频后期调色,PR调色分享,lumetri color调色
  2. C语言程序设计-用英文单词模拟数学计算系统
  3. rti matlab,dSPACE-RTI知识介绍.pdf
  4. 数字电路 时序逻辑电路
  5. 以太坊parity安装
  6. 阿里云香港和大陆的服务器分析
  7. 【第三方互联】12、支付宝(Alipay)授权第三方登录
  8. PowerBI 实现中国式报表
  9. 第129章 SQL函数 %SQLUPPER
  10. MSP430F149串口收发程序详解