add-apt-repositoryの手動代替コマンド
add-apt-repository
コマンドは便利ですが、プロキシ環境下でうまく動作しないケースがあります。
内容は短いのですが意外とさらっとやりたいことが見つからず、毎回同じことを調べてそこそこ時間がかかっているのでまとめます。
代替コマンド
以下の例ではppa:deadsnakes/ppaを使用しています。
sudo curl -fsSL -o /etc/apt/keyrings/deadsnakes.asc 'http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xF23C5A6CF475977595C89F51BA6932366A755776'
echo "deb [signed-by=/etc/apt/keyrings/deadsnakes.asc] https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/deadsnakes-ppa.list > /dev/null
解説
gpg --keyserver KEY_SERVER --recv-keys KEY_ID
を使用するとkeyringに追加されてしまうので、gpgコマンドを使用しない手順にしています。
テキスト形式で取得できるので--dearmor
も省略できます。
PPAのページでTechnical details about this PPA
を展開するとFingerprintとsources.listに追加する例が出てくるのでそれらを使用できます。
基本は例のまま使えますが頭に[signed-by=/path/to/keyfile]
を追加してキーを明示的に指定するようにしています。