動かざることバグの如し

近づきたいよ 君の理想に

Ubuntuでadd-apt-repositoryを使わずにPPAを追加する方法

環境

やりたいこと

Ubuntuで公式以外のパッケージ群(PPA)を使いたい場合は add-apt-repository コマンドを使用するように公式では推奨されている。

が、add-apt-repository コマンドは標準では入っておらず、apt install software-properties-common でインストールする必要がある。

依存パッケージが多く結構厄介なので、今回はadd-apt-repositoryコマンドを使用せずにPPAを追加するメモ

やり方

例としてNginx公式のPPAである ppa:nginx/stable を例にやってみる

通常であればリンク先に書いてあるように

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update

が一般的である

まずは鍵を追加する必要がある。https://launchpad.net/~nginx/+archive/ubuntu/stable より、「Adding this PPA to your system」項目の「Technical details about this PPA」をクリック

すると「Signing key」が表示されるのでそのキーのリンクをクリック

Search results for 'XXXX'と書かれたページが表示されるはずなので、keyIDを取得する。

今回だと

pub rsa1024/8b3981e7a6852f782cc4951600a6f0a3c300ee8c

と書かれてあるのでKeyIDは「8b3981e7a6852f782cc4951600a6f0a3c300ee8c」になる

そして実際にUbuntuに登録する

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv [KEYID]

今回は「apt-key adv --keyserver keyserver.ubuntu.com --recv 8b3981e7a6852f782cc4951600a6f0a3c300ee8c」になる

最後にPPAを/etc/apt/source.d/XXX.list(ファイル名は任意)に記述

# cat /etc/apt/sources.list.d/nginx.list 
deb https://ppa.launchpadcontent.net/nginx/stable/ubuntu focal main 
deb-src https://ppa.launchpadcontent.net/nginx/stable/ubuntu focal main 

必要なURLはppa:nginx/stableに記載されている

コマンド一発とはいかないので面倒ちゃ面倒だがDockerイメージ構築とか軽量目指しているならおすすめ

参考リンク