2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

パッケージのリポジトリ登録を、add-apt-repositoryから推奨される手段に置き換えた上でインストールしてみる

Last updated at Posted at 2024-08-06

やること

add-apt-repositoryを用いたリポジトリの登録を、推奨される手段に置き換えてインストールする

自分の環境

$ uname -a
Linux rpiz2 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

手順

例として、今回インストールしようとしているパッケージです。

公式では以下のようにインストールの手順が示されています。

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse

add-apt-repositoryを用いたリポジトリの登録は現在非推奨なので、この部分を推奨されるものに置き換えてみます。
なお自分の環境では、最終的に以下のコマンドに集約されました。

$ sudo curl -sS 'http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0xA7AFF39895544C77C124BB46FEAC8456AF83AFEB' | sudo gpg --dearmor -o /etc/apt/keyrings/alessandro-strada.gpg
$ echo "deb [signed-by=/etc/apt/keyrings/alessandro-strada.gpg] http://ppa.launchpad.net/alessandro-strada/ppa/ubuntu kinetic main" | sudo tee -a /etc/apt/sources.list.d/alessandro-strada-ubuntu-ppa-bionic.list
$ sudo apt-get update
$ sudo apt-get install google-drive-ocamlfuse

1. 追加パッケージの調査

sudo add-apt-repository ppa:alessandro-strada/ppaを見て、https://launchpad.net/ からalessandro-stradaを検索します

image.png

image.png

インストールしたいsudo apt-get install google-drive-ocamlfuseに一致するパッケージがありました。
このページを開いておきます。

image.png

2. リポジトリの公開鍵を取得

追加パッケージの調査で開いたページから、Fingerprintを控えておきます。

image.png

fingerprint="A7AFF39895544C77C124BB46FEAC8456AF83AFEB"

リポジトリの名前も控えておきます。

# ppa:alessandro-strada/ppa
#     ^---------------- ^-- ここ2つ
repo="alessandro-strada"
subrepo="ppa"

以下のコマンドから、リポジトリの公開鍵を取得

curl -sS "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x${fingerprint}" > "./${repo}.asc"

所定の位置に、取得した公開鍵をGPGキーとして配置

cat "./${repo}.asc" | sudo gpg --dearmor -o "/etc/apt/keyrings/${repo}.gpg"

ちなみにGPGキーの置き場所は、初期状態で以下の2か所用意されています。

  • /etc/apt/keyrings/
  • /etc/apt/trusted.gpg.d/

/etc/apt/trusted.gpg.d/はOSの提供するパッケージのGPGキーを配置する場所らしいです。

3. aptにリポジトリを登録

/etc/apt/sources.list.d/直下に、以下の赤枠部分を記述したファイルを作成していきます。

image.png

赤枠のYOUR_UBUNT_VERSION_HEREに入れる内容を調べます。

Ubuntu または Ubuntu派生のOSの場合

/etc/os-releaseに記述された、VERSION_CODENAMEの値がその箇所に入れたい値です。

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
#                ^---- これ
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

Display sources.kist entriesの選択肢に、上記のJammyが含まれています。
どうやらこのOSのバージョンに、正式に対応しているようです。

image.png

この場合、YOUR_UBUNT_VERSION_HEREjammyと置き換えることになります。

Ubuntu派生のOSではない場合

筆者の環境はDebianベースの環境なので、そもそもVERSION_CODENAMEの値がUbuntuのものにはなりません。

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
#                ^------- これはUbuntuのコードネームにはない
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

/etc/debian_versionを確認すると、以下のいずれかのようにVERSION_ID、またはVERSION_CODENAMEにあたる内容が記述されています。

$ cat /etc/debian_version
bookworm/sid
$ cat /etc/debian_version
12.6

以下のページにDebianのバージョンと、対応するUbuntuのバージョンを比較して下さった方が表でまとめています。
What Debian version are the different Ubuntu versions based on? - Ask Ubuntu

自分の環境のbookwormは、UbuntuのLunar Lobster/Kinetic Kudu/Jammy Jellyfishの3つに対応しているようです。

image.png

Display sources.kist entriesの選択肢に、上記の3つがいずれも含まれています。
なんとなくで、VERSION_CODENAME=kineticと置き換えるようにしてみました。

この場合、YOUR_UBUNT_VERSION_HEREkineticと置き換えることになります。

記述する内容の情報が揃ったら、/etc/apt/sources.list.d/直下にファイルを作成します。
ここにはパッケージの情報として、鍵の位置、リポジトリのURL、バージョン情報を記述します。

echo "deb [signed-by=/etc/apt/keyrings/${repo}.gpg] http://ppa.launchpad.net/${repo}/${subrepo}/ubuntu ${YOUR_UBUNT_VERSION_HERE} main" | sudo tee -a /etc/apt/sources.list.d/${repo}.list

4. インストール

パッケージリストの更新をしてみます。
警告やエラーが表示されなければ問題ないです。

sudo apt-get update

実際にパッケージをインストールします。
エラーが出なければ完了です。

sudo apt-get install google-drive-ocamlfuse
2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?