[Arch Linux] キーリング、 GPG キャッシュ・ディレクトリ・ファイル・エラーの対処法

Linux
この記事は約4分で読めます。

※当サイトは広告収入で運営されているため、広告が表示される場合があります。

非公式リポジトリを更新しようとしたらキーリングができなくなってしまいました。キーリングを取得できないとパッケージをサーバからダウンロードできなくなります。

エラー: key "****************" could not be looked up remotely 
エラー: キーリングに必要なキーがありません 
エラー: 処理を完了できませんでした (予期しないエラー) エラーが発生したため、パッケージは更新されませんでした

鍵の更新を試みた結果 GPG 関係でエラーが発生とのメッセージが表示されました。

$ sudo pacman-key -r ******** && pacman-key --lsign-key ********
gpg: connecting dirmngr at '/root/.gnupg/S.dirmngr' failed: IPC connect 呼び出しに失敗しました
gpg: 鍵サーバからの受信に失敗しました: dirmngrがありません
エラー: キーサーバから正しくキーを取得できませんでした。

キー取得処理をしている最中に他の処理が割り込むと GPG がフリーズしてしまうため dirmngr をキルしてから設定ファイルを再生成する必要があります。

対処法

dirmngr は GPG などを使ってネットワークアクセスするためのサーバです。証明書シグネチャの更新や管理ができます。

dirmngr < /dev/null を実行すると /root/.gnupg/S.dirmngr が新しく作られ、 GPG が正しく動くようになります。

ルート権限で以下のコマンドを実行します。

# dirmngr < /dev/null
dirmngr[30485.0]: '/root/.gnupg/dirmngr_ldapservers.conf'を開く際、エラー: そのようなファイルやディレクトリはありません
dirmngr[30485.0]: 永続的にロードされる証明書: 0
dirmngr[30485.0]: 実行時キャッシュ証明書の数: 0
dirmngr[30485.0]: キャッシュ・ディレクトリ・ファイル'/root/.gnupg/dirmngr-cache.d/DIR.txt'が開けません: そのようなファイルやディレクトリはありません
dirmngr[30485.0]: ディレクトリ'/root/.gnupg'の作成
dirmngr[30485.0]: ディレクトリ'/root/.gnupg/dirmngr-cache.d'の作成
dirmngr[30485.0]: 新しいキャッシュ・ディレクトリ・ファイル'/root/.gnupg/dirmngr-cache.d/DIR.txt'ができました
# Home: ~/.gnupg
# Config: [none]
OK Dirmngr 2.1.1 at your service

GPG キャッシュ・ディレクトリ・ファイルが新たに作成されました。

キーリングの更新

$ sudo pacman-key -r ******** && sudo pacman-key --lsign-key ********
gpg: 鍵********:"******* <*******@*********.**>"変更なし
gpg: 処理数の合計: 1
gpg: 変更なし: 1
==> 信用データベースを更新...
gpg: 次回の信用データベース検査は、2016-01-22です
-> キーに署名 ********...
==> 信用データベースを更新...
gpg: 'まぁまぁの信用'3、'全面的信用'1、PGP信用モデル
gpg: 深さ: 0 有効性: 1 署名: 6 信用: 0-, 0q, 0n, 0m, 0f, 1u
gpg: 深さ: 1 有効性: 6 署名: 62 信用: 1-, 0q, 0n, 5m, 0f, 0u
gpg: 深さ: 2 有効性: 60 署名: 5 信用: 60-, 0q, 0n, 0m, 0f, 0u
gpg: 次回の信用データベース検査は、2016-01-22です

無事にキーリングが更新されました。これで問題なく pacman が動くようになるはずです。

おわり

via Receiving keys as root user (lists.gnupg.org) Arch Linux BBS

コメント

  1. 匿名 より:

    dirmngr < /dev/null
    では???

タイトルとURLをコピーしました