この記事は、主にDebian Administrator's Handbookを眺めて書いたものです。
対象はDebian 10 (buster)です。
- Part 1 : Debian Administrator's Handbook
- Part 2 : 用語
- Part 3 : /etc/apt/sources.listの説明
- Part 4 : /etc/apt/sources.listの設定例
Part 1 : Debian Administrator's Handbook
Debian Administrator's Handbookのサイト
Part 2 : 用語
APT
APTは Advanced Package Tool の略だそうです。
ソースパッケージとパッケージソース
ソースパッケージ(source package)は、ソースコードのパッケージ。
パッケージソース(package source)は、パッケージのあるリポジトリ。
Part 3 : /etc/apt/sources.listの説明
APTを使うにはリポジトリの一覧を /etc/apt/sources.list に記述しておく必要があります。
<記述例> deb http://ftp.riken.jp/Linux/debian/debian buster main contrib non-free deb-src http://ftp.riken.jp/Linux/debian/debian buster main contrib non-free ベースリポジトリ以外も記述したフル設定の例はPart4の「stable版向けの設定例」をご覧ください。
記述例のとおり、sources.listファイルの各行は、少なくとも3つのフィールドから構成されています。
なお、フィールドとはスペースで区切られた項目のことです。記述例の1行目において、1つ目のフィールドは「deb」で、2つ目のフィールドは「http://ftp.riken.jp/Linux/debian/debian」です。
1番目のフィールド
1番目のフィールドはパッケージのタイプを表しています。
deb バイナリーパッケージ(バイナリファイルの入ったパッケージ) deb-src ソースパッケージ(ソースコードの入ったパッケージ)
2番目のフィールド
2番目のフィールドはリポジトリのURLです。
記述例ではインターネット上のリポジトリになっていますが、以下のようにCD-ROM等をリポジトリに指定することもできます。
http:// Webサーバー上のリポジトリ (https:// で始まる場合もあります。) ftp:// FTPサーバー上のリポジトリ (ftps:// で始まる場合もあります。) file:// PC上のリポジトリ cdrom: CD_ROM、DVD-ROM、Blu-rayディスク
3番目のフィールド
3番目のフィールドは、指定するリポジトリの構造によって記述の仕方が異なります。
ハンドブックによると、サブディレクトリが無いリポジトリなら「./」を指定することもできるそうですが、大抵のポジトリは階層構造になっています。
(比較) リポジトリの構成とsources.listの記述
理化学研究所のリポジトリを見ると、Debian 10 (buster) のある場所は以下のとおりです。
http://ftp.riken.jp/Linux/debian/debian/dists/buster/
そして、このbusterディレクトリの中に「main」ディレクトリ、「contrib」ディレクトリ、「non-free」ディレクトリがあります。
このリポジトリを利用する場合、sources.listには以下のように記述します。
deb http://ftp.riken.jp/Linux/debian/debian buster main contrib non-free
理化学研究所のURLにある「dists」ディレクトリを記述する必要は無いようです。
3番目のフィールドは、Debianのコードネームか版(stable、 testing、 unstable等)です。コードネームで記述する場合、Debian 10 のコードネームは busterなので、次のようになります。
deb http://ftp.riken.jp/Linux/debian/debian buster main contrib non-free
版で既述する場合、次のようになります(stable版を指定した場合)。
deb http://ftp.riken.jp/Linux/debian/debian stable main contrib non-free
Part 4 : /etc/apt/sources.listの設定例
(追記)Debian12用のsources.listの設定例は以下の記事のとおりです。
/etc/apt/sources.list(Debian12) - 恥は/dev/nullへ by 初心者
Debian10(buster)用の設定例
# Security updates deb http://security.debian.org/ buster/updates main contrib non-free deb-src http://security.debian.org/ buster/updates main contrib non-free # Base repository deb http://ftp.riken.jp/Linux/debian/debian buster main contrib non-free deb-src http://ftp.riken.jp/Linux/debian/debian buster main contrib non-free # Stable updates deb http://ftp.riken.jp/Linux/debian/debian buster-updates main contrib non-free deb-src http://ftp.riken.jp/Linux/debian/debian buster-updates main contrib non-free # Stable backports deb http://ftp.riken.jp/Linux/debian/debian buster-backports main contrib non-free deb-src http://ftp.riken.jp/Linux/debian/debian buster-backports main contrib non-free
上の例では「Security updates」を除き、理研のリポジトリを指定しています(Security updatesはミラーサイトには無いため)。
余談ですが、念のためsecurity.debian.orgを調べました。
http://security.debian.org/dists/buster/updates/ の中に「main」「contrib」「non-free」がありました。
各リポジトリに含まれるパッケージ
大抵のパッケージはベースリポジトリから取得します。ベースリポジトリには全てのパッケージが含まれているものの、更新頻度は少なめで2ヶ月に1回くらいのポイントリリース(バグフィックス等)です。
それ以外のリポジトリは部分的なもので、全てのパッケージが含まれているわけではありません(ただ、新しいバージョンのパッケージを提供するらしいです)。
非公式のリポジトリは最後に記述する
欲しいバージョンのパッケージが複数のリポジトリにある場合、aptは(sources.list内で)最初に記述されているリポジトリを利用します。よって、非公式のリポジトリはsources.listの最後に記述します。
Security updatesリポジトリ
Debianで使用されているソフトに脆弱性などがあると分かると、それを修正するためのセキュリティアップデートが提供されます。
これを拾ってくるために「Security updates」に記述したリポジトリを使用します(このアップデートはミラーサイトにはありません)。
Stable updatesリポジトリ
Stable updatesリポジトリは、主に重大なバグに対するバグフィクスを提供します。なお、stable版のポイントリリース(ベースリポジトリのポイントリリース)よりも早くアップデートを提供してくれるそうです。
Stable backportsリポジトリ
Stable backportsリポジトリには package backports があります(package backportsとは、古いディストリビューション(通常はstable版)向けに再コンパイルした最近のソフトのパッケージだそうです)。しかし、意図的に指定しないとaptはpackage backportsをインストールしてくれません。
ハンドブックには以下の2つの方法が記載されていました。
$ sudo apt-get install パッケージ名/buster-backports
$ sudo apt-get install -t buster-backports パッケージ名
main, non-free, contrib
パッケージがどのようなライセンスに従っているかに応じて、「main」、「non-free」、「contrib」に分かれているらしいです。
- mainは、DFSG(Debian Free Software Guidelines)に準拠しているもの。
- non-freeは、DFSGに完全には準拠していないが、制約なしに配布することができるもの(公式にはDebianではない)。
- contribは、オープンソースだがnon-freeなものを必要とするパッケージ。
(補足)
contribの説明に登場するnon-freeなものの例として、ハンドブックには次の例が挙げられています。
・ゲームのROM、コンソールのBIOS
・コンパイルするのにプロプライエタリなソフトを必要とするもの