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]を追加してキーを明示的に指定するようにしています。