3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

apt-key/add-apt-repositoryを使わずにパッケージをインストール

Posted at

背景

apt-key が deprecated になったので 、今後推奨となる方法を示す。

概要

  • 手順概要
    • /etc/apt/keyrings/ にレポジトリの公開鍵 (asc や gpg) を保存する。
    • /etc/sources.list.d/ にレポジトリの参照先情報を保存する。
      • このとき、signed-by で保存した公開鍵を指定する。
  • 今回は ppa:nginx/stable をインストールする。
    • ppa 以外のレポジトリでも、公開鍵と参照先情報があれば同じ手順が使える。
  • ppa のサイトから必要な情報をメモ (画像参照)
    • 接続先情報: deb https://ppa.launchpadcontent.net/nginx/stable/ubuntu focal main
    • fingerprint: 8B3981E7A6852F782CC4951600A6F0A3C300EE8C
      image.png

手順

/etc/apt/keyrings/ にレポジトリの公開鍵 (asc や gpg) を保存

sudo mkdir /etc/apt/keyrings/
sudo curl 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8b3981e7a6852f782cc4951600a6f0a3c300ee8c' -o /etc/apt/keyrings/nginx-ubuntu-stable-focal.asc
  • fingerprint:
    • 8B3981E7A6852F782CC4951600A6F0A3C300EE8C
  • 公開鍵の url:
    • https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8b3981e7a6852f782cc4951600a6f0a3c300ee8c
  • 公開鍵の保存先:
    • /etc/apt/keyrings/nginx-ubuntu-stable-focal.asc

/etc/apt/sources.list.d/ にレポジトリの参照先を保存

echo deb [signed-by=/etc/apt/keyrings/nginx-ubuntu-stable-focal.asc] https://ppa.launchpadcontent.net/nginx/stable/ubuntu focal main | sudo tee /etc/apt/sources.list.d/nginx-ubuntu-stable-focal.list >/dev/null
  • 公開鍵の場所:
    • /etc/apt/keyrings/nginx-ubuntu-stable-focal.asc
  • 接続先情報:
    • deb https://ppa.launchpadcontent.net/nginx/stable/ubuntu focal main
  • 接続先情報の保存先:
    • /etc/apt/sources.list.d/nginx-ubuntu-stable-focal.list

インストール

sudo apt update && sudo apt install -y nginx

ポイント
apt update で失敗する場合、ファイル/ディレクトリの owner/group/permission を確認する。
以下以外では動かない可能性がある。

  • owner/group: root:root
  • permission: dir=755, file=644
  • 対象: 公開鍵、参照先情報、それらの親ディレクトリ
    また、後述のメモの情報を使ってデバッグしてみる。

その他メモ

apt update (nginx-ubuntu-stable-focal.list のみ)
$ sudo apt-get update -o APT::Get::List-Cleanup=0 -o Dir::Etc::sourceparts=- -o Dir::Etc::sourcelist=sources.list.d/nginx-ubuntu-stable-focal.list
Hit:1 https://ppa.launchpadcontent.net/nginx/stable/ubuntu focal InRelease
Reading package lists... Done
my.asc を my.gpg に変換
$ gpg --no-default-keyring --keyring ./my.gpg --import ./my.asc
gpg: keybox './my.gpg' created
gpg: key 00A6F0A3C300EE8C: 1 signature not checked due to a missing key
gpg: key 00A6F0A3C300EE8C: public key "Launchpad Stable" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no ultimately trusted keys found
my.gpg を確認
$ gpg --no-default-keyring --keyring ./my.gpg --list-keys
./my.gpg
--------
pub   rsa1024 2010-07-21 [SC]
      8B3981E7A6852F782CC4951600A6F0A3C300EE8C
uid           [ unknown] Launchpad Stable
my.gpg で apt update 時の鍵検証を手動でやる
$ wget -q https://ppa.launchpadcontent.net/nginx/stable/ubuntu/dists/focal/InRelease
$ gpgv --keyring ./my.gpg ./InRelease
gpgv: can't allocate lock for './my.gpg'
gpgv: Signature made Wed 21 Oct 2020 12:51:01 PM UTC
gpgv:                using RSA key 00A6F0A3C300EE8C
gpgv: Good signature from "Launchpad Stable"

参考

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?