回答:
期限切れのリポジトリキーとそのIDを見つけるにはapt-key
、次のように使用します。
LANG=C apt-key list | grep expired
次のような結果が得られます。
pub 4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]
キーIDは、この場合、/
ieの後のビットBE1DB1F1
です。
キーを更新するには、実行します
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1
注:パッケージメンテナが(まだ)新しいキーをアップロードしていない場合、キーの更新は明らかに機能しません。その場合、メンテナーに連絡したり、ディストリビューションに対してバグを報告したりする以外にできることはほとんどありません。
有効期限が切れたすべてのキーを更新する1つのライナー:(@ryanpcmcquenに感謝)
for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
新しいキーを取得して追加する必要があります。その時点でaptはそれを検出し、文句を言いません。これは通常は発生しませんが、時々発生します。本当に必要なのは、追加する必要があるキーの16進コードを知ることです。それを手に入れたら、そこからほとんど下り坂です。
いくつかの例:
バックポート用のキーを追加します。最初の数行は目的のキーですが、必要なキーが必要です。
上SecureAPTについてのDebianのWiki、私は含む行削除すべきであることがわかってきたnon-us
の/etc/apt/sources.listからを。
私は実際にそれをしました、そして、それは働きました。
このエラーの原因は非常にまれですが、ときどき可能ですが、有効期限が異なる同じキーを2回追加した場合です。この回答があなたに関連していることを知っているでしょう。
これは、私が行ったように、独自のキーを使用して独自のリポジトリをホストするときに発生する可能性があります。キーが期限切れになりそうな場合、変更するのではなく単に有効期間を延長し、preseedを使用して元のキーをインストールし、debパッケージを使用して更新されたキーをインストールした場合、古いキーはになりますが/etc/apt/trusted.gpg
、新しいキーはは、の下に別のファイルとして配置されます/etc/apt/trusted.gpg.d/
。古いキーは新しいキーを隠しますが、これは完全に無視されapt-key
ます。を実行して古いキーを削除するgpg --keyring /etc/trusted.gpg --delete-keys <keyid>
と、新しいキーが検出されます。
これは少し非標準のコーナー構成ですが、私と同じ理由で他の誰かがこの問題に遭遇した場合に備えて、私の答えが混乱を少しでも救うことを願っています。
何もする必要はありません。これは単なる警告であり、W:
プレフィックスから確認できます。