さてさて、今回は久しぶりのArchLinuxネタです。

「署名は信頼されていません」のメッセージでパッケージ更新ができない

パッケージを更新する際に、以下のようなメッセージが出て、更新できなくなるケースがあります。


:: ファイル /var/cache/pacman/pkg/gnupg-2.2.32-2.2-pentium4.pkg.tar.zst は破損しています (無効または破損したパッケージ (PGP 鍵))。
ファイルを削除しますか? [Y/n] y
エラー: ldns: "Erich Eckner (just to sign arch packages) <arch-packages@eckner.net>" の署名は信頼されていません
:: ファイル /var/cache/pacman/pkg/ldns-1.8.1-1.0-pentium4.pkg.tar.zst は破損しています (無効または破損したパッケージ (PGP 鍵))。
ファイルを削除しますか? [Y/n] y
エラー: 処理を完了できませんでした (無効または破損したパッケージ)
エラーが発生したため、パッケージは更新されませんでした。

解決した方法をご紹介していきます

この際の対応について、以下の方法で解決できたので、筆者の解決した手順を紹介いたします。
まずは、このようなエラーの発生ケースはどういう場合に起こるのかということを知る必要があります。

一連の流れとして、まず、pacman -Syuコマンドで更新しようとします。
すると、更新可能なパッケージリストが取得できるわけですね。

インストールするか聞かれ、Yキーで更新が開始されます。
しかし、署名チェックで失敗しているということになります。


どんな状況でのエラーだったか

sudo pacman -Syu

:: パッケージデータベースの同期中...
 core は最新です
 extra は最新です
 community は最新です
:: システム全体の更新を開始...
:: hwids を core/hwdata に置き換えますか? [Y/n] y
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (15) archlinux32-keyring-20220101-1.0  ca-certificates-mozilla-3.74-1.1  expat-2.4.2-1.1  gnupg-2.2.32-2.2  hwdata-0.355-1.0  hwids-20210613-1.0 [削除]  ldns-1.8.1-1.0  nss-3.74-1.1
                pciutils-3.7.0-2.1  systemd-250.2-2.1  systemd-libs-250.2-2.1  systemd-resolvconf-250.2-2.1  systemd-sysvcompat-250.2-2.1  zlib-1:1.2.11-5.0  zstd-1.5.1-2.1

合計ダウンロード容量:        13.58 MiB
合計インストール容量:        53.88 MiB
最終的なアップグレード容量:   0.55 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
 systemd-250.2-2.1-pentium4                                                                    6.7 MiB  1080 KiB/s 00:06 [########################################################################] 100%
 gnupg-2.2.32-2.2-pentium4                                                                     2.5 MiB  1609 KiB/s 00:02 [########################################################################] 100%
 nss-3.74-1.1-pentium4                                                                      1460.0 KiB  1254 KiB/s 00:01 [########################################################################] 100%
 zstd-1.5.1-2.1-pentium4                                                                     826.2 KiB  1285 KiB/s 00:01 [########################################################################] 100%
 systemd-libs-250.2-2.1-pentium4                                                             612.8 KiB  1051 KiB/s 00:01 [########################################################################] 100%
 ldns-1.8.1-1.0-pentium4                                                                     475.5 KiB   787 KiB/s 00:01 [########################################################################] 100%
 hwdata-0.355-1.0-any                                                                        470.6 KiB   807 KiB/s 00:01 [########################################################################] 100%
 ca-certificates-mozilla-3.74-1.1-pentium4                                                   343.3 KiB   837 KiB/s 00:00 [########################################################################] 100%
 expat-2.4.2-1.1-pentium4                                                                    118.2 KiB   523 KiB/s 00:00 [########################################################################] 100%
 pciutils-3.7.0-2.1-pentium4                                                                 104.9 KiB   477 KiB/s 00:00 [########################################################################] 100%
 zlib-1:1.2.11-5.0-pentium4                                                                   90.9 KiB   433 KiB/s 00:00 [########################################################################] 100%
 archlinux32-keyring-20220101-1.0-any                                                         34.0 KiB   170 KiB/s 00:00 [########################################################################] 100%
 systemd-sysvcompat-250.2-2.1-pentium4                                                         5.9 KiB  30.7 KiB/s 00:00 [########################################################################] 100%
 systemd-resolvconf-250.2-2.1-pentium4                                                         3.1 KiB  15.9 KiB/s 00:00 [########################################################################] 100%
 合計 (14/14)                                                                                 13.6 MiB   879 KiB/s 00:16 [########################################################################] 100%
(14/14) キーリングのキーを確認                                                                                           [########################################################################] 100%
(14/14) パッケージの整合性をチェック                                                                                     [########################################################################] 100%
エラー: gnupg: "Erich Eckner (just to sign arch packages) <arch-packages@eckner.net>" の署名は信頼されていません
:: ファイル /var/cache/pacman/pkg/gnupg-2.2.32-2.2-pentium4.pkg.tar.zst は破損しています (無効または破損したパッケージ (PGP 鍵))。
ファイルを削除しますか? [Y/n] y
エラー: ldns: "Erich Eckner (just to sign arch packages) <arch-packages@eckner.net>" の署名は信頼されていません
:: ファイル /var/cache/pacman/pkg/ldns-1.8.1-1.0-pentium4.pkg.tar.zst は破損しています (無効または破損したパッケージ (PGP 鍵))。
ファイルを削除しますか? [Y/n] y
エラー: 処理を完了できませんでした (無効または破損したパッケージ)
エラーが発生したため、パッケージは更新されませんでした。

鍵が更新されてしまい、手元の鍵と整合性が取れない

この状態はどういうことかというサーバ側のPGP鍵が更新されているのですが、
クライアント側の鍵が古いために、整合性が取れずに発生していると考えられます。

パッケージの中身をよく見ると、「archlinux32-keyring-20220101-1.0」というパッケージがありますね。

1月のKeyringの鍵が更新されていることがわかります。

そこで、以下コマンドでこの鍵を先にピンポイントで指定してインストールします。


先に「keyring」だけ更新してみる

$ sudo pacman -S archlinux32-keyring

その結果、keyringだけならインストールできました。


実行結果は以下の通りです。

$ sudo pacman -S archlinux32-keyring

依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) archlinux32-keyring-20220101-1.0

合計インストール容量:         0.04 MiB
最終的なアップグレード容量:  -0.04 MiB

:: インストールを行いますか? [Y/n] y
(1/1) キーリングのキーを確認                                                                                             [########################################################################] 100%
(1/1) パッケージの整合性をチェック                                                                                       [########################################################################] 100%
(1/1) パッケージファイルのロード                                                                                         [########################################################################] 100%
(1/1) ファイルの衝突をチェック                                                                                           [########################################################################] 100%
(1/1) 空き容量を確認                                                                                                     [########################################################################] 100%
:: パッケージの変更を処理しています...
(1/1) 更新 archlinux32-keyring                                                                                           [########################################################################] 100%
==> archlinux32.gpg からキーを追加...
==> 信頼データベースを更新...
gpg: 次回の信用データベース検査は、2022-01-20です
:: トランザクション後のフックを実行...
(1/1) Arming ConditionNeedsUpdate...

無事に「keyring」が更新された!

信用データベースを更新と表示されています。

それでは、いざ再度パッケージ全体を更新してみます。


再度 「sudo pacman -Syu」を実施する

$ sudo pacman -Syu

:: パッケージデータベースの同期中...
 core は最新です
 extra は最新です
 community は最新です
:: システム全体の更新を開始...
:: hwids を core/hwdata に置き換えますか? [Y/n] y
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (14) ca-certificates-mozilla-3.74-1.1  expat-2.4.2-1.1  gnupg-2.2.32-2.2  hwdata-0.355-1.0  hwids-20210613-1.0 [削除]  ldns-1.8.1-1.0  nss-3.74-1.1  pciutils-3.7.0-2.1  systemd-250.2-2.1
                systemd-libs-250.2-2.1  systemd-resolvconf-250.2-2.1  systemd-sysvcompat-250.2-2.1  zlib-1:1.2.11-5.0  zstd-1.5.1-2.1

合計ダウンロード容量:         2.93 MiB
合計インストール容量:        53.84 MiB
最終的なアップグレード容量:   0.59 MiB

:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
 gnupg-2.2.32-2.2-pentium4                                                                     2.5 MiB   929 KiB/s 00:03 [########################################################################] 100%
 ldns-1.8.1-1.0-pentium4                                                                     475.5 KiB   774 KiB/s 00:01 [########################################################################] 100%
 合計 (2/2)                                                                                    2.9 MiB   806 KiB/s 00:04 [########################################################################] 100%
(13/13) キーリングのキーを確認                                                                                           [########################################################################] 100%
(13/13) パッケージの整合性をチェック                                                                                     [########################################################################] 100%
(13/13) パッケージファイルのロード                                                                                       [########################################################################] 100%
(13/13) ファイルの衝突をチェック                                                                                         [########################################################################] 100%
(14/14) 空き容量を確認                                                                                                   [########################################################################] 100%
:: パッケージの変更を処理しています...
(1/1) 削除 hwids                                                                                                         [########################################################################] 100%
( 1/13) 更新 zlib                                                                                                        [########################################################################] 100%
( 2/13) 更新 zstd                                                                                                        [########################################################################] 100%
( 3/13) 更新 systemd-libs                                                                                                [########################################################################] 100%
( 4/13) 更新 ca-certificates-mozilla                                                                                     [########################################################################] 100%
( 5/13) 更新 expat                                                                                                       [########################################################################] 100%
( 6/13) 更新 gnupg                                                                                                       [########################################################################] 100%
( 7/13) インストール hwdata                                                                                              [########################################################################] 100%
( 8/13) 更新 ldns                                                                                                        [########################################################################] 100%
( 9/13) 更新 nss                                                                                                         [########################################################################] 100%
(10/13) 更新 pciutils                                                                                                    [########################################################################] 100%
(11/13) 更新 systemd                                                                                                     [########################################################################] 100%
警告: /etc/systemd/logind.conf は /etc/systemd/logind.conf.pacnew としてインストールされました
警告: /etc/systemd/resolved.conf は /etc/systemd/resolved.conf.pacnew としてインストールされました
(12/13) 更新 systemd-resolvconf                                                                                          [########################################################################] 100%
(13/13) 更新 systemd-sysvcompat                                                                                          [########################################################################] 100%
:: トランザクション後のフックを実行...
( 1/12) Creating system user accounts...
( 2/12) Updating journal message catalog...
( 3/12) Reloading system manager configuration...
( 4/12) Updating udev hardware database...
( 5/12) Applying kernel sysctl settings...
( 6/12) Creating temporary files...
( 7/12) Reloading device manager configuration...
( 8/12) Arming ConditionNeedsUpdate...
( 9/12) Rebuilding certificate stores...
(10/12) Updating linux initcpios...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 5.15.7-arch1-1.0
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
Decompress:  1/21 files. Current: ...mmc_core.ko.zst : 0 B...    ==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 5.15.7-arch1-1.0
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
Decompress: 598/621 files. Current: ...nel/nfsd.ko.zst : 384 KiB...    ==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
(11/12) Reloading system bus configuration...
(12/12) Updating the info directory file...

これで無事にパッケージ全体を更新することができましたね。

つまり、keyringは更新された署名ファイルであり、keyringが更新されている場合は、
手元のkeyringをパッケージ更新よりも前に更新しておく必要があるわけですね。


まとめ

というわけで今回はArchLinuxでsudo pacman -Syuの際に「署名は信頼されていません」のエラーが
出た場合の解決策についてご紹介しました。

引き続きArchLinuxを運用しながら何か課題やトラブルがあれば情報を発信していきたいと思います。

何かの参考になれば幸いです。