歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

教你校驗 Debian 軟件包的MD5

教你校驗 Debian 軟件包的MD5

教你校驗 Debian 軟件包的MD5


導讀下載軟件包時,你可能面臨這些問題:網絡連接不穩定或者突然斷電,這會導致安裝的軟件包受到損壞。那麼本文將指導你如何在Linux下生成MD5校驗和並使用它來校驗文件。

教你校驗 Debian 軟件包的MD5教你校驗 Debian 軟件包的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-indicatorOK
  2. /usr/share/doc/a11y-profile-manager-indicator/copyrightOK
  3. /usr/share/man/man1/a11y-profile-manager-indicator.1.gzOK
  4. /usr/share/accounts/providers/facebook.providerOK
  5. /usr/share/accounts/qml-plugins/facebook/Main.qmlOK
  6. /usr/share/accounts/services/facebook-microblog.serviceOK
  7. /usr/share/accounts/services/facebook-sharing.serviceOK
  8. /usr/share/doc/account-plugin-facebook/copyrightOK
  9. /usr/share/accounts/providers/flickr.providerOK
  10. /usr/share/accounts/qml-plugins/flickr/Main.qmlOK
  11. /usr/share/accounts/services/flickr-microblog.serviceOK
  12. /usr/share/accounts/services/flickr-sharing.serviceOK
  13. /usr/share/doc/account-plugin-flickr/copyrightOK
  14. /usr/share/accounts/providers/google.providerOK
  15. /usr/share/accounts/qml-plugins/google/Main.qmlOK
  16. /usr/share/accounts/services/google-drive.serviceOK
  17. /usr/share/accounts/services/google-im.serviceOK
  18. /usr/share/accounts/services/picasa.serviceOK
  19. /usr/share/doc/account-plugin-google/copyrightOK
  20. /lib/systemd/system/accounts-daemon.serviceOK
  21. /usr/lib/accountsservice/accounts-daemonOK
  22. /usr/share/dbus-1/interfaces/org.freedesktop.Accounts.User.xmlOK
  23. /usr/share/dbus-1/interfaces/org.freedesktop.Accounts.xmlOK
  24. /usr/share/dbus-1/system-services/org.freedesktop.Accounts.serviceOK
  25. /usr/share/doc/accountsservice/READMEOK
  26. /usr/share/doc/accountsservice/TODOOK
  27. ....

為了能夠校驗每個軟件包的每個文件和配置文件,查找任何變化,請加入-a或--all選項:

sudo debsums --all

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

  1. /usr/bin/a11y-profile-manager-indicatorOK
  2. /usr/share/doc/a11y-profile-manager-indicator/copyrightOK
  3. /usr/share/man/man1/a11y-profile-manager-indicator.1.gzOK
  4. /etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktopOK
  5. /usr/share/accounts/providers/facebook.providerOK
  6. /usr/share/accounts/qml-plugins/facebook/Main.qmlOK
  7. /usr/share/accounts/services/facebook-microblog.serviceOK
  8. /usr/share/accounts/services/facebook-sharing.serviceOK
  9. /usr/share/doc/account-plugin-facebook/copyrightOK
  10. /etc/signon-ui/webkit-options.d/www.facebook.com.confOK
  11. /usr/share/accounts/providers/flickr.providerOK
  12. /usr/share/accounts/qml-plugins/flickr/Main.qmlOK
  13. /usr/share/accounts/services/flickr-microblog.serviceOK
  14. /usr/share/accounts/services/flickr-sharing.serviceOK
  15. /usr/share/doc/account-plugin-flickr/copyrightOK
  16. /etc/signon-ui/webkit-options.d/login.yahoo.com.confOK
  17. /usr/share/accounts/providers/google.providerOK
  18. /usr/share/accounts/qml-plugins/google/Main.qmlOK
  19. /usr/share/accounts/services/google-drive.serviceOK
  20. /usr/share/accounts/services/google-im.serviceOK
  21. /usr/share/accounts/services/picasa.serviceOK
  22. /usr/share/doc/account-plugin-google/copyrightOK
  23. ...

還有可能只校驗配置文件,不包括軟件包的其他所有文件,為此只要使用-e或--config選項:

sudo debsums --config

只校驗配置文件的MD5和:

  1. /etc/xdg/autostart/a11y-profile-manager-indicator-autostart.desktopOK
  2. /etc/signon-ui/webkit-options.d/www.facebook.com.confOK
  3. /etc/signon-ui/webkit-options.d/login.yahoo.com.confOK
  4. /etc/signon-ui/webkit-options.d/accounts.google.com.confOK
  5. /etc/dbus-1/system.d/org.freedesktop.Accounts.confOK
  6. /etc/acpi/asus-keyboard-backlight.shOK
  7. /etc/acpi/events/asus-keyboard-backlight-downOK
  8. /etc/acpi/ibm-wireless.shOK
  9. /etc/acpi/events/tosh-wirelessOK
  10. /etc/acpi/asus-wireless.shOK
  11. /etc/acpi/events/lenovo-undockOK
  12. /etc/default/acpi-supportOK
  13. /etc/acpi/events/ibm-wirelessOK
  14. /etc/acpi/events/asus-wireless-onOK
  15. /etc/acpi/events/asus-wireless-offOK
  16. /etc/acpi/tosh-wireless.shOK
  17. /etc/acpi/events/asus-keyboard-backlight-upOK
  18. /etc/acpi/events/thinkpad-cmosOK
  19. /etc/acpi/undock.shOK
  20. /etc/acpi/events/powerbtnOK
  21. /etc/acpi/powerbtn.shOK
  22. /etc/init.d/acpidOK
  23. /etc/init/acpid.confOK
  24. /etc/default/acpidOK
  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.confOK
  2. /usr/sbin/a2enmodOK
  3. /usr/sbin/a2queryOK
  4. /usr/sbin/apache2ctlOK
  5. /usr/share/apache2/apache2-maintscript-helperOK
  6. /usr/share/apache2/ask-for-passphraseOK
  7. /usr/share/bash-completion/completions/a2enmodOK
  8. /usr/share/doc/apache2/NEWS.Debian.gzOK
  9. /usr/share/doc/apache2/PACKAGING.gzOK
  10. /usr/share/doc/apache2/README.Debian.gzOK
  11. /usr/share/doc/apache2/README.backtraceOK
  12. /usr/share/doc/apache2/README.multiple-instances OK
  13. /usr/share/doc/apache2/copyrightOK
  14. /usr/share/doc/apache2/examples/apache2.monitOK
  15. /usr/share/doc/apache2/examples/secondary-init-scriptOK
  16. /usr/share/doc/apache2/examples/setup-instanceOK
  17. /usr/share/lintian/overrides/apache2OK
  18. /usr/share/man/man1/a2query.1.gzOK
  19. /usr/share/man/man8/a2enconf.8.gzOK
  20. /usr/share/man/man8/a2enmod.8.gzOK
  21. /usr/share/man/man8/a2ensite.8.gzOK
  22. /usr/share/man/man8/apache2ctl.8.gzOK

假設你以普通用戶的身份運行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/infols *.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-data-partner.md5sums
  25. ...

記住:使用-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


http://xxxxxx/Linuxjc/1184534.html TechArticle

Copyright © Linux教程網 All Rights Reserved