ページ

2022-07-21

廃止予定の apt-key に対応してみた

Linux Mint 21 のベータ版で PipeWire をインストールするために PPA を追加しているのですが、Linux Mint 20.3 では表示されなかった APT の警告メッセージが表示されていることに気づきました。

Linux Mint 21 のベースが Ubuntu 22.04 に変わっていることで APT のバージョンも上がっているのが原因のようですが、調べると対応方法があるようなので試してみました。
※警告メッセージが表示されるだけなので気にしなければまったく影響はありません。 

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

今回、参考にしたのは以下のページです。
https://pipewire-debian.github.io/pipewire-debian/
https://qiita.com/m-m-n/items/dbb245dc6dae6a170c70
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0675?page=2


さて、いきなり設定手順です。

これまでは /etc/apt/trusted.gpg という 1つのファイルに全てのキー情報が格納されているという管理形態が望ましくないということで、/usr/local/share/keyrings というディレクトリを新たに用意し、さらに PPA のリポジトリ毎にキー情報ファイルを分割して保管する、ということになります。

ディレクトリを作成する
$ sudo mkdir /usr/local/share/keyrings

サーバーからキー情報を取得する
$ gpg --keyserver keyserver.ubuntu.com --recv-keys 25088A0359807596
gpg: 鍵25088A0359807596: 公開鍵"Launchpad PPA for SOURAV DAS"をインポートしました
gpg: 処理数の合計: 1
gpg:               インポート: 1

取得したキー情報をファイルとして書き出す
$ gpg -a --export 25088A0359807596 | tee /tmp/pipewire.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGCEA50BEACnloyYE/WwQGIe5ttMWeOQvUvjib/RH2sqNhOnU159Canf1AzX
aHjDx1rU4DJTHKXCqVIBW81Bm2tKZPEN4UFzzndeCivEo6RzMuYM8AgEiN7hz5OC
StTcOJ3o8QnmMRfK/zh92T36DRbzT7mt6S/0FhBGnzNO+BjIXQHbfT9ncOx1ZRTp
0dohHKxSiMD5IUwQGZObnwnZOYhGniDm6I2b+NanMMdu63Yxb+O2Fpx0p51xAJzU
DJgs1GvEEn70+eXPOBtec34uDAomwWAUJarQTwKPsMMXxrY/hCiTfPozytGyx1kQ
+jhZKLtN9tclz4MtM1LC/lMN3gQyISX0e+PMngMvXa9YQM+fq+1wkj9DZpur5aqY
wj88KFmhTh7wLQRTERFhOg5BY1DEu2yJHHe0C2rCeqD83Aq1R4aD+DoFqPurf1ej
KTr9YZbx9vDaKc2Wm1MugBnB93GtGOTzScx4JhNWrDSbnR0S76MjTFkU64C0OJ6M
dUuMVx8sv7drF1bPrFp4meAQSW1iT1eZSnAp//xhpDGTKCvsya5rAI6eq7fLVA9D
kTFizCrSay0FRrK2h3E6J795rLxQMcvLte4iFjwVLNjaoxOweCxe6MXkEOD9eHHh
4VYKRAN2iusa6EE8H1BMF9TBNieLywKMIl74fFu4CfYNMKZVvpchJuHwYQARAQAB
tBxMYXVuY2hwYWQgUFBBIGZvciBTT1VSQVYgREFTiQJOBBMBCgA4FiEE/EO3NSvM
DsivLuuLJQiKA1mAdZYFAmCEA50CGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AA
CgkQJQiKA1mAdZZ7FA/9H9We4XDRLBCo5qDYAmRpBiiyzelchJZE4GFTNLIBhX5Z
iA+BaLQWpzZgQPASDsPbDI8W+n6yyoyqrBJtiYmU9XyHfEkpYA5ya3OflG+TThzV
YDSVK06yamgI+wII09pJQ2yG+riZ/E02QdBh2u+Z4IUGWMhJl+nqzNnPEkoLbeNs
QqdiLRxUj/5kSl7qvtsQYmzsDVj6oLk1yveCYsbqsi5uETTYLhEICfe3HIE++nsB
7m2Loz3QT3nuoKyIVsQoDPppejzb0azgmlckv1L7vXOotH4XUQzAxLZDSq1dk51X
BCE8JLALLN8YQroYBOPaJO5+fBl4qqrejku705RVQ0NxYdc4gHXi7H+ULimko7xr
UWTSCpqOC6rXeSxNYMqjZ8i/rzmylKIzWUu04gaWt/9AUMPXGuQvhHbzve4EeMr5
Ucz2cEaOk+9fTkHhQCT1gFt42pCDlL1SDcIrWcC0DUo/OwbYPw5k+j75+qm4Q7Px
hspJAsvaFFJu209KJ/G4ja972AcZRDDFwtgpGS2Tc7kIW1gibU/FHGpw4KxIBseu
f0BhLz9xvcqiHE21zXaFMIKwGapE3ZB2hgJlb7yORcwF2kLlVZ30dQ5Pb2iuYmRh
bbMasQ0CDePX8wVC5O57k+1Nvsd2ViHk8WJ+tbGHnQJaRLAd9A9SkOY8L8Ot+hA=
=rZoM
-----END PGP PUBLIC KEY BLOCK-----

キー情報をバイナリー化するためにまずはインポート
$ gpg --no-default-keyring --keyring /tmp/temp-keyring.gpg --import /tmp/pipewire.asc
gpg: keybox'/tmp/temp-keyring.gpg'が作成されました
gpg: 鍵25088A0359807596: 公開鍵"Launchpad PPA for SOURAV DAS"をインポートしました
gpg: 処理数の合計: 1
gpg:               インポート: 1

キー情報をバイナリー形式で書き出す
$ gpg --no-default-keyring --keyring /tmp/temp-keyring.gpg --export --output /tmp/pipewire.gpg

バイナリー化したキー情報を正規の保管場所へコピー
$ sudo cp /tmp/pipewire.gpg /usr/local/share/keyrings

ここまででキー情報ファイルが用意できたので、仕上げにキー情報ファイルの場所を教えてあげると完了です。

キー情報ファイルの場所を追記する
$ sudo xed /etc/apt/sources.list.d/pipewire-debian-pipewire-upstream-jammy.list

deb [arch=amd64 signed-by=/usr/local/share/keyrings/pipewire.gpg] http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu jammy main
# deb-src http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu jammy main

いつもの情報更新で警告メッセージが表示されなくなれば成功
$ apt update
無視:1 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages vanessa InRelease
ヒット:2 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages vanessa Release
ヒット:4 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu jammy InRelease                                                    
ヒット:5 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu jammy-updates InRelease                                            
ヒット:6 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu jammy-backports InRelease
取得:7 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]                                         
ヒット:8 http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu jammy InRelease                         
110 kB を 2秒 で取得しました (71.3 kB/s)                        
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
パッケージはすべて最新です。

そのうちに移行ツールが提供されるのかもしれません。