教你校验 Debian 软件包的MD5

添加微信公众号《Linux就该这么学》,掌握最新IT资讯动态,免费领取Linux课程以及专业的RHCE考前答疑服务。

《Linux就该这么学》在线免费阅读地址:http://www.linuxprobe.com/

纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注

导读

下载软件包时,你可能面临这些问题:网络连接不稳定或者突然断电,这会导致安装的软件包受到损坏。那么本文将指导你如何在Linux下生成MD5校验和并使用它来校验文件。

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

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

apt-cache search debsums

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

sudo apt install debsums

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

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

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

  • · OKDD表明某个文件的MD5和是好的。

  • · FAILEDDD表明某个文件的MD5和不匹配。

  • · REPLACEDDD意味着某个特定文件已被来自另一个软件包的文件所更换。

如果你不用任何选项来运行,debsums会对照常规的md5sum文件来校验系统上的每个文件,扫描文件系统、寻找MD5和

  1. /usr/bin/a11y-profile-manager-indicator OK

  2. /usr/share/doc/a11y-profile-manager-indicator/copyright OK

  3. /usr/share/man/man1/a11y-profile-manager-indicator.1.gz OK

  4. /usr/share/accounts/providers/facebook.provider OK

  5. /usr/share/accounts/qml-plugins/facebook/Main.qml OK

  6. /usr/share/accounts/services/facebook-microblog.service OK

  7. /usr/share/accounts/services/facebook-sharing.service OK

  8. /usr/share/doc/account-plugin-facebook/copyright OK

  9. /usr/share/accounts/providers/flickr.provider OK

  10. /usr/share/accounts/qml-plugins/flickr/Main.qml OK

  11. /usr/share/accounts/services/flickr-microblog.service OK

  12. /usr/share/accounts/services/flickr-sharing.service OK

  13. /usr/share/doc/account-plugin-flickr/copyright OK

  14. /usr/share/accounts/providers/google.provider OK

  15. /usr/share/accounts/qml-plugins/google/Main.qml OK

  16. /usr/share/accounts/services/google-drive.service OK

  17. /usr/share/accounts/services/google-im.service OK

  18. /usr/share/accounts/services/picasa.service OK

  19. /usr/share/doc/account-plugin-google/copyright OK

  20. /lib/systemd/system/accounts-daemon.service OK

  21. /usr/lib/accountsservice/accounts-daemon OK

  22. /usr/share/dbus-1/interfaces/org.freedesktop.Accounts.User.xml OK

  23. /usr/share/dbus-1/interfaces/org.freedesktop.Accounts.xml OK

  24. /usr/share/dbus-1/system-services/org.freedesktop.Accounts.service OK

  25. /usr/share/doc/accountsservice/README OK

  26. /usr/share/doc/accountsservice/TODO OK

  27. ....

为了能够校验每个软件包的每个文件和配置文件,查找任何变化,请加入-a或--all选项:

sudo debsums --all

校验所有配置文件的MD5和:

  1. /usr/bin/a11y-profile-manager-indicator OK

  2. /usr/share/doc/a11y-profile-manager-indicator/copyright OK

  3. /usr/share/man/man1/a11y-profile-manager-indicator.1.gz OK

  4. /etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop OK

  5. /usr/share/accounts/providers/facebook.provider OK

  6. /usr/share/accounts/qml-plugins/facebook/Main.qml OK

  7. /usr/share/accounts/services/facebook-microblog.service OK

  8. /usr/share/accounts/services/facebook-sharing.service OK

  9. /usr/share/doc/account-plugin-facebook/copyright OK

  10. /etc/signon-ui/webkit-options.d/www.facebook.com.conf OK

  11. /usr/share/accounts/providers/flickr.provider OK

  12. /usr/share/accounts/qml-plugins/flickr/Main.qml OK

  13. /usr/share/accounts/services/flickr-microblog.service OK

  14. /usr/share/accounts/services/flickr-sharing.service OK

  15. /usr/share/doc/account-plugin-flickr/copyright OK

  16. /etc/signon-ui/webkit-options.d/login.yahoo.com.conf OK

  17. /usr/share/accounts/providers/google.provider OK

  18. /usr/share/accounts/qml-plugins/google/Main.qml OK

  19. /usr/share/accounts/services/google-drive.service OK

  20. /usr/share/accounts/services/google-im.service OK

  21. /usr/share/accounts/services/picasa.service OK

  22. /usr/share/doc/account-plugin-google/copyright OK

  23. ...

还有可能只校验配置文件,不包括软件包的其他所有文件,为此只要使用-e或--config选项:

sudo debsums --config

只校验配置文件的MD5和:

  1. /etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktop OK

  2. /etc/signon-ui/webkit-options.d/www.facebook.com.conf OK

  3. /etc/signon-ui/webkit-options.d/login.yahoo.com.conf OK

  4. /etc/signon-ui/webkit-options.d/accounts.google.com.conf OK

  5. /etc/dbus-1/system.d/org.freedesktop.Accounts.conf OK

  6. /etc/acpi/asus-keyboard-backlight.sh OK

  7. /etc/acpi/events/asus-keyboard-backlight-down OK

  8. /etc/acpi/ibm-wireless.sh OK

  9. /etc/acpi/events/tosh-wireless OK

  10. /etc/acpi/asus-wireless.sh OK

  11. /etc/acpi/events/lenovo-undock OK

  12. /etc/default/acpi-support OK

  13. /etc/acpi/events/ibm-wireless OK

  14. /etc/acpi/events/asus-wireless-on OK

  15. /etc/acpi/events/asus-wireless-off OK

  16. /etc/acpi/tosh-wireless.sh OK

  17. /etc/acpi/events/asus-keyboard-backlight-up OK

  18. /etc/acpi/events/thinkpad-cmos OK

  19. /etc/acpi/undock.sh OK

  20. /etc/acpi/events/powerbtn OK

  21. /etc/acpi/powerbtn.sh OK

  22. /etc/init.d/acpid OK

  23. /etc/init/acpid.conf OK

  24. /etc/default/acpid OK

  25. ...

下一步,如果想在debsums的输出中只显示变化的文件,请使用-c或--changed选项。我在自己的系统中没有找到任何变化的文件。

sudo debsums --changed

下一个命令输出没有md5sum信息的文件,这里我们使用-l和--list-missing选项。在我的系统上,该命令没有显示任何文件。

sudo debsums --list-missing

现在只要指定名称,就可以校验单一软件包的md5和:

sudo debsums apache2

校验已安装软件包的MD5和:

  1. /lib/systemd/system/apache2.service.d/apache2-systemd.conf OK

  2. /usr/sbin/a2enmod OK

  3. /usr/sbin/a2query OK

  4. /usr/sbin/apache2ctl OK

  5. /usr/share/apache2/apache2-maintscript-helper OK

  6. /usr/share/apache2/ask-for-passphrase OK

  7. /usr/share/bash-completion/completions/a2enmod OK

  8. /usr/share/doc/apache2/NEWS.Debian.gz OK

  9. /usr/share/doc/apache2/PACKAGING.gz OK

  10. /usr/share/doc/apache2/README.Debian.gz OK

  11. /usr/share/doc/apache2/README.backtrace OK

  12. /usr/share/doc/apache2/README.multiple-instances   OK

  13. /usr/share/doc/apache2/copyright OK

  14. /usr/share/doc/apache2/examples/apache2.monit OK

  15. /usr/share/doc/apache2/examples/secondary-init-script OK

  16. /usr/share/doc/apache2/examples/setup-instance OK

  17. /usr/share/lintian/overrides/apache2 OK

  18. /usr/share/man/man1/a2query.1.gz OK

  19. /usr/share/man/man8/a2enconf.8.gz OK

  20. /usr/share/man/man8/a2enmod.8.gz OK

  21. /usr/share/man/man8/a2ensite.8.gz OK

  22. /usr/share/man/man8/apache2ctl.8.gz OK

假设你以普通用户的身份运行debsums,没有sudo权限,那么可以使用--ignore-permissions选项,把权限错误当成警告:

debsums --ignore-permissions

如何利用.Deb文件生成MD5和?


-g 选项告诉debsums利用deb内容生成MD5和,其中:

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

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

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

  • · nocheckDD意味着提取/生成的和没有对照已安装软件包来进行校验。

如果你看一下目录/var/lib/dpkg/info/的内容,就会看到各个文件的md5sum,如下图所示:

cd /var/lib/dpkg/info
ls *.md5sums

列出软件包的所有MD5和:

  1. a11y-profile-manager-indicator.md5sums

  2. account-plugin-facebook.md5sums

  3. account-plugin-flickr.md5sums

  4. account-plugin-google.md5sums

  5. accountsservice.md5sums

  6. acl.md5sums

  7. acpid.md5sums

  8. acpi-support.md5sums

  9. activity-log-manager.md5sums

  10. adduser.md5sums

  11. adium-theme-ubuntu.md5sums

  12. adwaita-icon-theme.md5sums

  13. aisleriot.md5sums

  14. alsa-base.md5sums

  15. alsa-utils.md5sums

  16. anacron.md5sums

  17. apache2-bin.md5sums

  18. apache2-data.md5sums

  19. apache2.md5sums

  20. apache2-utils.md5sums

  21. apg.md5sums

  22. apparmor.md5sums

  23. app-install-data.md5sums

  24. app-install->...

记住:使用-g选项与--generate=missing一样,你可以试着为apache2软件包生成md5和,只要运行下面这个命令:

sudo debsums --generate=missing apache2

由于我系统上的apache2软件包已经有md5和,它会显示下列输出,这与运行$ sudo debsums apache2的结果一样。

想了解更多有意思的选项和使用方面的信息,请参阅debsums参考手册页。

man debsums

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

原文来自:http://os.51cto.com/art/201610/519012.htm

本文地址:http://www.linuxprobe.com/check-debian-package-md5.html编辑员:冯振华,审核员:苏西云


让您学习到的每一节课都有所收获

《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。

刘遄老师QQ:5604241

学员助教QQ:5604674

Linux技术交流A群():560843

Linux技术交流B群:340829

Linux技术交流C群:463590

官方站点:www.linuxprobe.com

☀ 电脑在线阅读效果更佳:

http://www.linuxprobe.com/chapter-00.html

按住图片3秒,即可自动关注。

点击左下角查看更多热门技术

添加微信公众号《Linux就该这么学》,掌握最新IT资讯动态,免费领取Linux课程以及专业的RHCE考前答疑服务。

《Linux就该这么学》在线免费阅读地址:http://www.linuxprobe.com/


阅读原文:https://www.douban.com/note/589448785/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容