add-apt-repositoryの問題がapt-keyで解決出来ない時のTips

3 min read読了の目安(約3500字

今日は前から気になってたけど個人パッケージだからと敬遠していたapt-fastをそろそろ導入してみようとしたらエラーが出ました。

久しぶりにこのエラー見たなと思いながらこの問題出たときに消すファイルどこにあったっけ?ってなったので備忘録と同じような問題に遭遇した人向けに残しときます。

$ sudo add-apt-repository ppa:apt-fast/stable
次の PPA を追加しようとしています:
 This PPA contains tested (stable) builds of apt-fast.
 詳しい情報: https://launchpad.net/~apt-fast/+archive/ubuntu/stable
続けるには Enter キーを、キャンセルするには Ctrl + C を入力してください

Executing: /tmp/apt-key-gpghome.YthRMFC1Z1/gpg.1.sh --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys A2166B8DE8BDC3367D1901C11EE2FF37CA8DA16B
gpg: 鍵1EE2FF37CA8DA16B: 公開鍵"Launchpad PPA for apt-fast"をインポートしました
gpg: 処理数の合計: 1
gpg:               インポート: 1
gpg: invalid key resource URL '/tmp/apt-key-gpghome.YthRMFC1Z1/home:manuelschneid3r.asc.gpg'
gpg: keyblock リソース'(null)': 一般エラーです
gpg: key 1488EB46E192A257: 鍵がないため1個の署名は検査しません
gpg: key 1488EB46E192A257: 鍵がないため1個の署名は検査しません
gpg: key A6616109451BBBF2: 鍵がないため12個の署名は検査しません
gpg: key 3B4FE6ACC0B21F32: 鍵がないため3個の署名は検査しません
gpg: key D94AA3F0EFE21092: 鍵がないため3個の署名は検査しません
gpg: key C8CAB6595FDFF622: 鍵がないため2個の署名は検査しません
gpg: key 871920D1991BC93C: 鍵がないため1個の署名は検査しません
gpg: 処理数の合計: 10
gpg:       スキップした新しい鍵: 10

この問題適当にいじりまくってる人だとたまに遭遇するので知ってると思いますが初見だと多分ググっても詰まると思うので解消方法残しときます

多分初見だとKEYが無いんだーって思ってググるからこんな解決策が出て来ると思います

エラーが出たKEYに対して
apt-key advなんちゃらかんちゃらコマンド
を実行したら解決するよ😁

確かにKEYに問題があるパターンだとそうなんですが
この問題ってKEYの方にあるんじゃなくて

gpg: invalid key resource URL '/tmp/apt-key-gpghome.YthRMFC1Z1/home:manuelschneid3r.asc.gpg'

こっちに問題があります
ここに出てくるhome:manuelschneid3r.asc.gpg(人によってこのファイル名は変わります)ってファイルの.gpgが付いてない版のファイルが/etc/apt/trusted.gpg.dディレクトリに居ます
ここには信頼済みキーのファイル断片、追加キーリングファイルが入るのですが
そいつがいるせいで上手く追加できなくなってます。

とりあえずfileコマンドでこのディレクトリ配下に何が入ってるか見てみましょう

$ file /etc/apt/trusted.gpg.d/*
/etc/apt/trusted.gpg.d/home:manuelschneid3r.asc: PGP public key block Public-Key (old)
/etc/apt/trusted.gpg.d/microsoft.gpg:                   PGP/GPG key public ring (v4) created Thu Oct 29 08:21:48 2015 RSA (Encrypt or Sign) 2048 bits MPI=0xc02a866166527118...
/etc/apt/trusted.gpg.d/ubuntu-defaults.chroot.key.gpg:  PGP/GPG key public ring (v4) created Wed May 25 01:56:58 2016 RSA (Encrypt or Sign) 4096 bits MPI=0xb6cca975cb62a4f7...
/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg: PGP/GPG key public ring (v4) created Sat May 12 06:15:36 2012 RSA (Encrypt or Sign) 4096 bits MPI=0xdf88bd4a3451d3e0...
/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg: PGP/GPG key public ring (v4) created Sat May 12 07:10:48 2012 RSA (Encrypt or Sign) 4096 bits MPI=0xbba4a2bbf2df3d0d...
/etc/apt/trusted.gpg.d/ubuntu-keyring-2016-dbgsym.gpg:  PGP/GPG key public ring (v4) created Mon Mar 21 19:24:43 2016 RSA (Encrypt or Sign) 4096 bits MPI=0xd342200d83dce884...
/etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg: PGP/GPG key public ring (v4) created Tue Sep 18 00:01:46 2018 RSA (Encrypt or Sign) 4096 bits MPI=0xeffc6c72b71fcb71...

色々いますねそして件のファイルだけ(old)とか付いてますね。。。

まぁこいつがいつのタイミングかわからないんですがここに作成されたから追加出来なくなってるだけなのでこいつを消して下さい
そして再度add-apt-repositoryしたら成功します。

$ sudo add-apt-repository ppa:apt-fast/stable
次の PPA を追加しようとしています:
 This PPA contains tested (stable) builds of apt-fast.
 詳しい情報: https://launchpad.net/~apt-fast/+archive/ubuntu/stable
続けるには Enter キーを、キャンセルするには Ctrl + C を入力してください

Executing: /tmp/apt-key-gpghome.sagDEJtmQX/gpg.1.sh --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys A2166B8DE8BDC3367D1901C11EE2FF37CA8DA16B
gpg: 鍵1EE2FF37CA8DA16B: 公開鍵"Launchpad PPA for apt-fast"をインポートしました
gpg: 処理数の合計: 1
gpg:               インポート: 1

後は手順通りapt updateしてinstallすれば終わりです

というわけで今日も普通に使ってる人には何の役にも立たない小ネタをお届けしました〜