Kako preveriti vsote MD5 nameščenih paketov v Debian/Ubuntu Linux
Ste se kdaj vprašali, zakaj dani binarni paket ali paket, nameščen v vašem sistemu, ne deluje v skladu z vašimi pričakovanji, kar pomeni, da ne deluje pravilno, kot bi moral, morda sploh ne more začeti dogodka.
Med prenosom paketov se lahko soočate z izzivi nestabilnih omrežnih povezav ali nepričakovanih izpadov električne energije, kar lahko povzroči namestitev poškodovanega paketa.
Če upoštevamo to kot pomemben dejavnik pri vzdrževanju nepoškodovanih paketov v vašem sistemu, je zato nujno treba preveriti datoteke v datotečnem sistemu glede na podatke, shranjene v paketu, z uporabo naslednjega članka.
Kako preveriti nameščene pakete Debian glede na kontrolne vsote MD5
V sistemih Debian/Ubuntu lahko z orodjem debsums preverite vsote MD5 nameščenih paketov. Če želite pred namestitvijo vedeti informacije o paketu debsums, lahko uporabite APT-CACHE takole:
$ apt-cache search debsums
Nato ga namestite z ukazom apt, kot sledi:
$ sudo apt install debsums
Zdaj je čas, da se naučite, kako z orodjem debsums preveriti MD5sum nameščenih paketov.
Opomba: Uporabil sem sudo z vsemi spodnjimi ukazi, ker nekatere datoteke morda nimajo dovoljenj za branje za običajne uporabnike.
Poleg tega izhod iz ukaza debsums prikaže lokacijo datoteke na levi in rezultate preverjanja na desni. Obstajajo trije možni rezultati, ki vključujejo:
- V redu - pomeni, da je vsota datoteke MD5 dobra.
- FAILED - kaže, da se vsota datoteke MD5 ne ujema.
- REPLACED - pomeni, da je določeno datoteko nadomestila datoteka iz drugega paketa.
Ko ga zaženete brez kakršnih koli možnosti, debsums preveri vsako datoteko v sistemu glede na zaloge 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 ....
Če želite omogočiti preverjanje sprememb v vsaki datoteki in konfiguracijskih datotekah za vsak paket, vključite možnost -a
ali --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 ...
Prav tako je mogoče z uporabo možnosti -e
ali --config
preveriti samo konfiguracijsko datoteko, razen vseh drugih paketnih datotek:
$ 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 ...
Nato uporabite samo možnost -c
ali --changed
, če želite v izhodni obliki debsumov prikazati samo spremenjene datoteke. V svojem sistemu nisem našel nobene spremenjene datoteke.
$ sudo debsums --changed
Naslednji ukaz natisne datoteke, ki nimajo informacij o md5sum, tu uporabimo možnosti -l
in --list-missing
. V mojem sistemu ukaz ne prikaže nobene datoteke.
$ sudo debsums --list-missing
Zdaj je čas, da preverite vsoto md5 posameznega paketa tako, da navedete njegovo ime:
$ 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
Ob predpostavki, da debsume izvajate kot običajni uporabnik brez sudo, lahko napake v dovoljenjih obravnavate kot opozorila z uporabo možnosti --ignore-permissions
:
$ debsums --ignore-permissions
Kako ustvariti vsote MD5 iz datotek .Deb
Možnost -g
sporoča debsumom, naj generirajo vsote MD5 iz deb vsebine, kjer:
- manjka - naročite debsumom, naj generirajo vsote MD5 iz deb za pakete, ki tega ne zagotavljajo.
- vse - usmerja debsume, da prezrejo vsote na disku in uporabijo tisto, ki je prisotna v datoteki deb ali ustvarjeno iz nje, če ta ne obstaja.
- obdrži - pove debsumom, naj ekstrahirane/ustvarjene vsote zapišejo v datoteko /var/lib/dpkg/info/package.md5sums.
- nocheck - pomeni, da izvlečene/ustvarjene vsote niso preverjene glede na nameščeni paket.
Ko pogledate vsebino imenika /var/lib/dpkg/info/
, boste videli md5sums za različne datoteke, ki se pakirajo, kot na spodnji sliki:
$ 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 ...
Ne pozabite, da je uporaba -g
enaka kot --generate = manjka
, lahko poskusite ustvariti vsoto md5 za paket apache2, tako da zaženete naslednji ukaz.
$ sudo debsums --generate=missing apache2
Ker paket apache2 v mojem sistemu že ima vsote md5, bo spodaj prikazal izhod, kar je enako kot zagon:
$ sudo debsums apache2
Za bolj zanimive možnosti in informacije o uporabi si oglejte stran z informacijami o debsumih.
$ man debsums
V tem članku smo delili, kako preveriti nameščene pakete Debian/Ubuntu glede na kontrolne vsote MD5, kar je lahko koristno, če se želite izogniti namestitvi in izvrševanju poškodovanih binarnih datotek ali datotek paketov v vašem sistemu s preverjanjem datotek v datotečnem sistemu glede na podatke, shranjene v paket.
Za kakršna koli vprašanja ali povratne informacije izkoristite spodnji obrazec za komentar. Predstavljate si lahko tudi enega ali dva predloga za izboljšanje te objave.