apt-get で公開鍵エラー(NO_PUBKEY)が出た時の対処法
こんなエラーが出るようになりました。
W: GPG エラー: http://archive.ubuntu.com ***** InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY ????????????????
*はバージョンです。
?は16桁の英数字です。
何が原因かわかりませんが、対処法は調べてみるとすぐに出てきました。
W: GPG エラー 公開鍵を利用できないため、以下の署名は検証できませんでしたの対応方法 - Symfoware
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 06F90DE5381BA480
のようにしてapt-keyを登録しなおせばいいようです。
実際は頭に"sudo"を加えなくてはいけません。
記事では頭に"#"がついているのでrootアカウントでの実行です。
ところがこの方法ではうまくいきませんでした。
どうやらgpg-keyが書かれている設定ファイルがおかしくなっているようです。
例えば、日本語環境をインストールするときに使うリポジトリを登録し直す時に
Ubuntuの日本語環境 | Ubuntu Japanese Team
上に書かれている方法
Ubuntu 15.04の場合:
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add - wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add - sudo wget https://www.ubuntulinux.jp/sources.list.d/vivid.list -O /etc/apt/sources.list.d/ubuntu-ja.list sudo apt-get update
(はてなキーワードへのリンクのせいなのか見られなくなっていますが、__のところは"wget"です。最後のは"ubuntu"です)
(引用のvivid.listはバージョンに合わせて書きなおして実行)
を試すとエラーになります。
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_y-ppa-manager.gpg': リソースが限界です
PPA関係でエラーがあるものが列挙されます。
そこで以下の方法を使います。
apt - Cannot solve GPG error - Ask Ubuntu
PPAなどのリポジトリ情報が書かれたファイルを全てバックアップに退避して、新たに作りなおすのです。
sudo mv /etc/apt/trusted.gpg.d/ /etc/apt/trusted.gpg.d.backup
sudo mkdir /etc/apt/trusted.gpg.d
sudo chmod 755 /etc/apt/trusted.gpg.d
このあと、改めて
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ????????????????
とするとうまくいきます。
全て退避したので当然ですが、エラーが出ていなかったものについてもエラーが出るようになるので全て登録します。
登録し終わったら、"apt-get update"を実行してエラーが出ないことを確認します。
エラー表示が日本語だとわかりやすくて良いのですが、検索しようとするととたんに困ることになりますね。
できる人は英語で検索して解決して満足してしまいますし、できない人は情報が見つけられずに対処できないことになります。
日本語のエラーメッセージでの情報が増えてほしいものです。