Debian/Ubuntu Linux でインストールされているパッケージの MD5 合計を確認する方法
システムにインストールされている特定のバイナリまたはパッケージが期待どおりに動作しないのはなぜだろうと考えたことはありますか。つまり、本来のとおりに正しく機能せず、おそらくイベントをまったく開始できないのでしょう。
パッケージのダウンロード中に、ネットワーク接続が不安定になったり、予期せぬ停電が発生したりする場合があり、その結果、破損したパッケージがインストールされる可能性があります。
これが破損していないパッケージをシステム上で維持するための重要な要素であると考えると、次の記事を使用して、ファイル システム上のファイルをパッケージに保存されている情報と照合することが重要な手順になります。
推奨読書: Linux で MD5 チェックサムを使用してファイルを生成および検証する方法を学習します。
インストールされている Debian パッケージを MD5 チェックサムと照合して検証する方法
Debian/Ubuntu システムでは、debsums ツールを使用して、インストールされているパッケージのMD5 合計を確認できます。インストールする前にdebsums パッケージに関する情報を知りたい場合は、次のように APT-CACHE を使用できます。
apt-cache search debsums
次に、次のように apt コマンドを使用してインストールします。
sudo apt install debsums
ここで、デブサムツールを使用して、インストールされているパッケージのMD5sumを確認する方法を学習します。
注: 特定のファイルには通常のユーザーの読み取り権限がない可能性があるため、以下のすべてのコマンドで sudo を使用しました。
さらに、debsums コマンドの出力では、左側にファイルの場所が、右側にチェック結果が表示されます。得られる結果としては次の 3 つが考えられます。
- OK – ファイルの MD5 サムが良好であることを示します。
- 失敗 – ファイルの MD5 合計が一致しないことを示します。
- 置換 – 特定のファイルが別のパッケージのファイルに置き換えられたことを意味します。
オプションを指定せずに実行すると、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
...
次に、デブサムの出力で変更されたファイルのみを表示するには、-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
sudo を使用せずに通常のユーザーとして debsums を実行していると仮定すると、--ignore-permissions
オプションを使用することで権限エラーを警告として扱うことができます。 :
debsums --ignore-permissions
.Deb ファイルから MD5 サムを生成する方法
-g
オプションは、debsum に deb コンテンツから MD5 サムを生成するように指示します。
- 欠落 – MD5 サムを提供しないパッケージのデブサムからデブサムを生成するようにデブサムに指示します。
- all – ディスク上の合計を無視し、deb ファイルに存在する合計を使用するか、存在しない場合はそこから生成された合計を使用するように debsum に指示します。
- 保持 – 抽出/生成された合計を /var/lib/dpkg/info/package.md5sums ファイルに書き込むように debsum に指示します。
- 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 sum を生成してみることができます。次のコマンド。
sudo debsums --generate=missing apache2
私のシステム上の apache2 パッケージにはすでに md5 サムが含まれているため、次の出力が表示されます。これは実行した場合と同じです。
sudo debsums apache2
さらに興味深いオプションと使用法については、debsums のマニュアル ページを参照してください。
man debsums
この記事では、 インストールされているDebian/Ubuntu パッケージをMD5 チェックサムと照合して検証する方法を共有しました。これは、破損したバイナリやパッケージ ファイルをコンピュータにインストールして実行することを避けるために役立ちます。ファイル システム上のファイルをパッケージに保存されている情報と照合してシステムを検証します。
ご質問やフィードバックがございましたら、以下のコメント フォームをご利用ください。この投稿をより良くするために、1 つまたは 2 つの提案を提供することもできます。