今回やること
今回は apt コマンドを利用して、サードパーティリポジトリから標準以外のソフトをインストールしてみる。
標準以外のソフトとは?
ここでは、以下のような意味で用いている。
apt の設定を変更すれば、後者も apt コマンドでインストールできるようになる。設定変更の方法は以下のいずれか。
/etc/apt/sources.listを編集して、設定を追加/etc/apt/sources.list.dディレクトリに、設定ファイルを追加
/etc/apt/sources.list の書式
SourcesList - Debian Wiki をざっと読んだ感じ、以下のような書式で記述する。
{Archive type} {Repository URL} {Distribution} {Component}
| 項目名 | 説明 |
|---|---|
Archive type |
deb か deb-src のいずれかを指定する。前者はバイナリ、後者はソースコードを表す。 |
Repository URL |
リポジトリの URL を指定する。 |
Distribution |
「Debian のコードネーム」か「リリースクラス」を指定する。前者は bullseye や bookworm など。後者は stable や testing など。 |
Component |
main、contrib、non-free のいずれかを指定する。 |
Distribution の補足
Distribution を stable で固定しても、時間が経つにつれて stable が指すバージョンが上がっていくことに注意。
ディストリビューションのバージョンを固定したい場合は、コードネームを指定するのが良さそう。
Component の補足
第4章 debian/ ディレクトリー以下に無くてはならないファイル をざっと読んだ感じ、Component で指定する
値の意味は以下の通り。
main:完全にフリーなソフトウェアnon-free:フリーでないソフトウェアcontrib:フリーだが、non-freeソフトウェアに依存するソフトウェア
第767回 Debian 12 "Bookworm"の紹介 | gihyo.jp をざっと読んだ感じ、以下は Bookworm で新たに追加された模様。
non-free-firmware:フリーでないファームウェア
/etc/apt/sources.list の編集
/etc/apt/sources.list は root ユーザしか編集できないようになっている。

編集するときは、事前にバックアップを取っておくと安心。

標準以外のソフトウェアをインストールする
MySQL :: A Quick Guide to Using the MySQL APT Repository を参考に MySQL をインストールしてみる。
手順を整理すると、以下のようになる。
# Step 1. apt-key コマンドを利用して GPG キーを取得 $ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys A8D3785C # Step 2. サードパーティリポジトリの設定を追加 $ sudo echo "deb http://repo.mysql.com/apt/debian/ bookworm mysql-8.0 mysql-tools" >> /etc/apt/sources.list.d/mysql.list # Step 3. パッケージ情報の更新 $ sudo apt-get update # Step 4. パッケージのインストール $ sudo apt-get install mysql-server
Step 1. apt-key コマンドを利用して GPG キーを取得
apt-key コマンドを実行すると、エラーになる。
![]()
エラーメッセージを読んだ感じ、gnupg、gnupg1、gnupg2 のいずれかをインストールすれば解消しそう。
apt search で gnupg、gnupg1、gnupg2 をそれぞれ検索してみる。



ざっと読んだ感じ、以下のような気がする。
gnupg:本流gnupg1:廃止済(deprecated)gnupg2:ダミー(gnupgと中身が同じ?)
とりあえず、gnupg をインストールしてみる。

y で続行すると、インストールが実行される。
gnupg のインストール後に以下を実行すると、(警告は出るが)エラーなく鍵が取得できる。
root@tk2-235-27459:~# apt-key adv --keyserver pgp.mit.edu --recv-keys A8D3785C Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). (中略) gpg: Total number processed: 1 gpg: imported: 1
Step 2. サードパーティリポジトリの設定を追加
/etc/apt/sources.list.d/mysql.list ファイルを作成する前に、/etc/apt/sources.list.d ディレクトリの状態を確認しておく。

デフォルトでは、このディレクトリは空っぽい。このディレクトリへの書き込み権限があるのは root ユーザのみ。
echo コマンドとリダイレクトを利用して、設定ファイルを作成する。

Step 3. パッケージ情報の更新
apt update でパッケージ情報を更新する。

パッケージ情報を更新すると、mysql-server が apt search でヒットするようになっていることが分かる。
Step 4. パッケージのインストール
ここまで来れば、あとは apt install でインストールするだけ。

y で続行すると、インストールが実行される。
ログ
root@tk2-235-27459:~# apt-get install mysql-server Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libaio1 libmecab2 mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client mysql-common mysql-community-client mysql-community-client-core mysql-community-client-plugins mysql-community-server mysql-community-server-core psmisc The following NEW packages will be installed: libaio1 libmecab2 mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client mysql-common mysql-community-client mysql-community-client-core mysql-community-client-plugins mysql-community-server mysql-community-server-core mysql-server psmisc 0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded. Need to get 44.8 MB of archives. After this operation, 368 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://deb.debian.org/debian bookworm/main amd64 libaio1 amd64 0.3.113-4 [13.4 kB] Get:2 http://deb.debian.org/debian bookworm/main amd64 libmecab2 amd64 0.996-14+b14 [222 kB] Get:3 http://deb.debian.org/debian bookworm/main amd64 psmisc amd64 23.6-1 [259 kB] Get:4 http://deb.debian.org/debian bookworm/main amd64 mecab-utils amd64 0.996-14+b14 [6328 B] Get:5 http://deb.debian.org/debian bookworm/main amd64 mecab-ipadic all 2.7.0-20070801+main-3 [6718 kB] Get:6 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-common amd64 8.0.40-1debian12 [59.6 kB] Get:7 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-community-client-plugins amd64 8.0.40-1debian12 [1285 kB] Get:8 http://deb.debian.org/debian bookworm/main amd64 mecab-ipadic-utf8 all 2.7.0-20070801+main-3 [5496 B] Get:9 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-community-client-core amd64 8.0.40-1debian12 [1870 kB] Get:10 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-community-client amd64 8.0.40-1debian12 [3163 kB] Get:11 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-client amd64 8.0.40-1debian12 [58.4 kB] Get:12 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-community-server-core amd64 8.0.40-1debian12 [31.0 MB] Get:13 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-community-server amd64 8.0.40-1debian12 [68.7 kB] Get:14 http://repo.mysql.com/apt/debian bookworm/mysql-8.0 amd64 mysql-server amd64 8.0.40-1debian12 [58.4 kB] Fetched 44.8 MB in 6s (7562 kB/s) Preconfiguring packages ... Selecting previously unselected package mysql-common. (Reading database ... 33398 files and directories currently installed.) Preparing to unpack .../00-mysql-common_8.0.40-1debian12_amd64.deb ... Unpacking mysql-common (8.0.40-1debian12) ... Selecting previously unselected package mysql-community-client-plugins. Preparing to unpack .../01-mysql-community-client-plugins_8.0.40-1debian12_amd64.deb ... Unpacking mysql-community-client-plugins (8.0.40-1debian12) ... Selecting previously unselected package mysql-community-client-core. Preparing to unpack .../02-mysql-community-client-core_8.0.40-1debian12_amd64.deb ... Unpacking mysql-community-client-core (8.0.40-1debian12) ... Selecting previously unselected package mysql-community-client. Preparing to unpack .../03-mysql-community-client_8.0.40-1debian12_amd64.deb ... Unpacking mysql-community-client (8.0.40-1debian12) ... Selecting previously unselected package mysql-client. Preparing to unpack .../04-mysql-client_8.0.40-1debian12_amd64.deb ... Unpacking mysql-client (8.0.40-1debian12) ... Selecting previously unselected package libaio1:amd64. Preparing to unpack .../05-libaio1_0.3.113-4_amd64.deb ... Unpacking libaio1:amd64 (0.3.113-4) ... Selecting previously unselected package libmecab2:amd64. Preparing to unpack .../06-libmecab2_0.996-14+b14_amd64.deb ... Unpacking libmecab2:amd64 (0.996-14+b14) ... Selecting previously unselected package mysql-community-server-core. Preparing to unpack .../07-mysql-community-server-core_8.0.40-1debian12_amd64.deb ... Unpacking mysql-community-server-core (8.0.40-1debian12) ... Selecting previously unselected package psmisc. Preparing to unpack .../08-psmisc_23.6-1_amd64.deb ... Unpacking psmisc (23.6-1) ... Selecting previously unselected package mysql-community-server. Preparing to unpack .../09-mysql-community-server_8.0.40-1debian12_amd64.deb ... adduser: Warning: The home dir /var/lib/mysql you specified can't be accessed: No such file or directory Unpacking mysql-community-server (8.0.40-1debian12) ... Selecting previously unselected package mecab-utils. Preparing to unpack .../10-mecab-utils_0.996-14+b14_amd64.deb ... Unpacking mecab-utils (0.996-14+b14) ... Selecting previously unselected package mecab-ipadic. Preparing to unpack .../11-mecab-ipadic_2.7.0-20070801+main-3_all.deb ... Unpacking mecab-ipadic (2.7.0-20070801+main-3) ... Selecting previously unselected package mecab-ipadic-utf8. Preparing to unpack .../12-mecab-ipadic-utf8_2.7.0-20070801+main-3_all.deb ... Unpacking mecab-ipadic-utf8 (2.7.0-20070801+main-3) ... Selecting previously unselected package mysql-server. Preparing to unpack .../13-mysql-server_8.0.40-1debian12_amd64.deb ... Unpacking mysql-server (8.0.40-1debian12) ... Setting up libmecab2:amd64 (0.996-14+b14) ... Setting up mysql-common (8.0.40-1debian12) ... update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up psmisc (23.6-1) ... Setting up mecab-utils (0.996-14+b14) ... Setting up mysql-community-client-plugins (8.0.40-1debian12) ... Setting up libaio1:amd64 (0.3.113-4) ... Setting up mecab-ipadic (2.7.0-20070801+main-3) ... Compiling IPA dictionary for Mecab. This takes long time... reading /usr/share/mecab/dic/ipadic/unk.def ... 40 emitting double-array: 100% |###########################################| /usr/share/mecab/dic/ipadic/model.def is not found. skipped. reading /usr/share/mecab/dic/ipadic/Noun.demonst.csv ... 120 reading /usr/share/mecab/dic/ipadic/Noun.verbal.csv ... 12146 reading /usr/share/mecab/dic/ipadic/Suffix.csv ... 1393 reading /usr/share/mecab/dic/ipadic/Noun.number.csv ... 42 reading /usr/share/mecab/dic/ipadic/Verb.csv ... 130750 reading /usr/share/mecab/dic/ipadic/Noun.place.csv ... 72999 reading /usr/share/mecab/dic/ipadic/Postp-col.csv ... 91 reading /usr/share/mecab/dic/ipadic/Noun.adverbal.csv ... 795 reading /usr/share/mecab/dic/ipadic/Adverb.csv ... 3032 reading /usr/share/mecab/dic/ipadic/Postp.csv ... 146 reading /usr/share/mecab/dic/ipadic/Adj.csv ... 27210 reading /usr/share/mecab/dic/ipadic/Noun.org.csv ... 16668 reading /usr/share/mecab/dic/ipadic/Symbol.csv ... 208 reading /usr/share/mecab/dic/ipadic/Noun.csv ... 60477 reading /usr/share/mecab/dic/ipadic/Conjunction.csv ... 171 reading /usr/share/mecab/dic/ipadic/Noun.others.csv ... 151 reading /usr/share/mecab/dic/ipadic/Filler.csv ... 19 reading /usr/share/mecab/dic/ipadic/Adnominal.csv ... 135 reading /usr/share/mecab/dic/ipadic/Noun.name.csv ... 34202 reading /usr/share/mecab/dic/ipadic/Prefix.csv ... 221 reading /usr/share/mecab/dic/ipadic/Noun.adjv.csv ... 3328 reading /usr/share/mecab/dic/ipadic/Others.csv ... 2 reading /usr/share/mecab/dic/ipadic/Noun.nai.csv ... 42 reading /usr/share/mecab/dic/ipadic/Auxil.csv ... 199 reading /usr/share/mecab/dic/ipadic/Interjection.csv ... 252 reading /usr/share/mecab/dic/ipadic/Noun.proper.csv ... 27328 emitting double-array: 100% |###########################################| reading /usr/share/mecab/dic/ipadic/matrix.def ... 1316x1316 emitting matrix : 100% |###########################################| done! update-alternatives: using /var/lib/mecab/dic/ipadic to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode Setting up mysql-community-client-core (8.0.40-1debian12) ... Setting up mysql-community-server-core (8.0.40-1debian12) ... Setting up mecab-ipadic-utf8 (2.7.0-20070801+main-3) ... Compiling IPA dictionary for Mecab. This takes long time... reading /usr/share/mecab/dic/ipadic/unk.def ... 40 emitting double-array: 100% |###########################################| /usr/share/mecab/dic/ipadic/model.def is not found. skipped. reading /usr/share/mecab/dic/ipadic/Noun.demonst.csv ... 120 reading /usr/share/mecab/dic/ipadic/Noun.verbal.csv ... 12146 reading /usr/share/mecab/dic/ipadic/Suffix.csv ... 1393 reading /usr/share/mecab/dic/ipadic/Noun.number.csv ... 42 reading /usr/share/mecab/dic/ipadic/Verb.csv ... 130750 reading /usr/share/mecab/dic/ipadic/Noun.place.csv ... 72999 reading /usr/share/mecab/dic/ipadic/Postp-col.csv ... 91 reading /usr/share/mecab/dic/ipadic/Noun.adverbal.csv ... 795 reading /usr/share/mecab/dic/ipadic/Adverb.csv ... 3032 reading /usr/share/mecab/dic/ipadic/Postp.csv ... 146 reading /usr/share/mecab/dic/ipadic/Adj.csv ... 27210 reading /usr/share/mecab/dic/ipadic/Noun.org.csv ... 16668 reading /usr/share/mecab/dic/ipadic/Symbol.csv ... 208 reading /usr/share/mecab/dic/ipadic/Noun.csv ... 60477 reading /usr/share/mecab/dic/ipadic/Conjunction.csv ... 171 reading /usr/share/mecab/dic/ipadic/Noun.others.csv ... 151 reading /usr/share/mecab/dic/ipadic/Filler.csv ... 19 reading /usr/share/mecab/dic/ipadic/Adnominal.csv ... 135 reading /usr/share/mecab/dic/ipadic/Noun.name.csv ... 34202 reading /usr/share/mecab/dic/ipadic/Prefix.csv ... 221 reading /usr/share/mecab/dic/ipadic/Noun.adjv.csv ... 3328 reading /usr/share/mecab/dic/ipadic/Others.csv ... 2 reading /usr/share/mecab/dic/ipadic/Noun.nai.csv ... 42 reading /usr/share/mecab/dic/ipadic/Auxil.csv ... 199 reading /usr/share/mecab/dic/ipadic/Interjection.csv ... 252 reading /usr/share/mecab/dic/ipadic/Noun.proper.csv ... 27328 emitting double-array: 100% |###########################################| reading /usr/share/mecab/dic/ipadic/matrix.def ... 1316x1316 emitting matrix : 100% |###########################################| done! update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode Setting up mysql-community-client (8.0.40-1debian12) ... Setting up mysql-client (8.0.40-1debian12) ... Setting up mysql-community-server (8.0.40-1debian12) ... update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service -> /lib/systemd/system/mysql.service. Setting up mysql-server (8.0.40-1debian12) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+deb12u8) ... root@tk2-235-27459:~#
インストール後、MySQL が自動起動されていることを確認する。
