apt-key deprecation warningの解消

askubuntu.com

gihyo.jp

W: https://packagecloud.io/slacktechnologies/slack/debian/dists/jessie/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

最近上記のような警告が出ていて何のことかわかっていなかったけど、apt-keyが廃止とのことだったのでこの際修正してみた。記事を読むと本質的な対応ではないようだが, 3rd partyのリポジトリのものはひとまずこれで良いっぽい. 手順は上記の askubuntu.comの手順の通り. まず該当の鍵を探す

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

pub   rsa4096 2016-02-18 [SCEA]
      DB08 5A08 CA13 B8AC B917  E0F6 D938 EC0D 0386 51BD
uid           [ unknown] https://packagecloud.io/slacktechnologies/slack (https://packagecloud.io/docs#gpg_signing) <support@packagecloud.io>
sub   rsa4096 2016-02-18 [SEA]

次にそれを exportする

% sudo mkdir -p /usr/local/share/keyrings
% sudo apt-key export 038651BD | sudo gpg --dearmour -o /usr/local/keyrings/slack.gpg # 鍵IDは apt-key listで得られたもの(末尾2ブロック)

sourceファイルを編集し, exportしたものを明示的に指定する

% sudo vim /etc/apt/sources.list.d/slack.list

以下のように書き換えた

deb [signed-by=/usr/local/keyrings/slack.gpg] https://packagecloud.io/slacktechnologies/slack/debian/ jessie main

apt update をして警告が消えるかを確認する

sudo apt update

問題が解消したら鍵を消す

sudo apt-key del 0EBFCD88

ついでに expiredの未使用の鍵がたくさんあったので消しておいた.