Debianベースのシステムで私のパッケージを更新している間、
Sudo apt-get update
私はそのエラーメッセージを持っています:
Reading package lists... Done
W: GPG error: ftp://ftp.fr.debian.org stable/non-US Release:
The following signatures were invalid: KEYEXPIRED 1138684904
これを修正するにはどうすればよいですか?
SecureAPTに関するDebian Wiki で、non-us
を含む行を/etc/apt/sources.listから削除する必要があることがわかりました。
私は実際にそれをしました、そしてそれはうまくいきました。
期限切れのリポジトリキーとそのIDを見つけるには、次のようにapt-key
を使用します。
LANG=C apt-key list | grep expired
次のような結果が得られます。
pub 4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]
キーIDは/
の後のビット、つまりこの場合は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
新しいキーを取得して追加する必要があります。その時点で、aptはそれを検出して文句を言いません。これは通常は発生しませんが、発生することがあります。本当に必要なのは、追加する必要のあるキーの16進コードを知ることです。一度それを取得すると、そこからかなり下り坂になります。
いくつかの例:
バックポートにキーを追加する :最初の数行は後の行ですが、必要なキーが必要です。
同様のエラーが発生しましたが、問題はシステム時間にありました。年は1961年でした:)
システムの日付/時刻を修正した後、プロなしで更新できた
日付が正しくない場合にも発生する可能性があります。
日付を確認してください
date
正しく構成されていない場合は、次の手順を実行して、タイムゾーンと日付の自動同期を設定します。
apt-get install ntp ntpdate && service ntp stop
dpkg-reconfigure tzdata
ntpdate-debian
service ntp start
可能性は非常に低いですが、場合によっては、このエラーの原因として、有効期限の異なる同じキーを2回追加したことが考えられます。この回答があなたに関連するためにそうしたことを知っているでしょう。
これは、私と同じように、独自のキーを使用して独自のリポジトリをホストするときに発生する可能性があります。キーの有効期限が近づいているときに、キーを変更するのではなく、単に寿命を延ばす場合、およびpreseedingを使用して元のキーをインストールしたが、debパッケージを使用して更新したキーをインストールした場合、古いキーは/etc/apt/trusted.gpg
にあります。 、新しいファイルは/etc/apt/trusted.gpg.d/
の下の別のファイルになります。古いキーは新しいキーをシャドウしますが、apt-key
によって完全に無視されます。 gpg --keyring /etc/trusted.gpg --delete-keys <keyid>
を実行して古いキーを削除すると、新しいキーが検出されます。
これは少し標準的ではないコーナー構成ですが、私と同じ理由で他の誰かがこの問題に遭遇した場合に備えて、私の回答が混乱を軽減できることを願っています。
よりシンプルなワンライナー:
for key in $(Sudo apt-key list | awk -v FS='[ /:]+' '/expire[sd]/ {print $3}'); do Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $key; done
cut
を2回以上使用するような場合には、もっと良いツールがあると思います。 (また、これを 別の質問 に基づいて作成しました。)
する必要があります何もしません。これは単なる警告です。W:
接頭辞。