/etc/apt/sources.list
には Debian パッケージを公開しているさまざまなリポジトリ (つまり「ソース」) が記載されています。APT はそれぞれのソースで公開されているパッケージのリストを取り込みます。具体的に言うと、バイナリパッケージソースの場合は Packages.xz
ファイルまたは別の方法で圧縮されたファイル (Packages.gz
や Packages.bz2
)、ソースパッケージソースの場合は Sources.xz
ファイルまたは別の方法で圧縮されたファイルをダウンロードして、内容を解析して、パッケージのリストを取り込みます。これらのファイルの古いコピーが既にあるのなら、APT は差分だけをダウンロードしてファイルを更新することも可能です (補注「TIP 増分アップグレード」を参照してください)。
/etc/apt/sources.list
ファイルの有効な各行にはソースの説明が含まれ、ソースの説明は空白で分割された 3 つのフィールドからなります。
deb
」はバイナリパッケージ用です。
deb-src
」はソースパッケージ用です。
Packages.xz
ファイル内のファイル名と組み合わせて使われます。さらに基点 URL は完全で有効な URL でなければいけません)。基点 URL には Debian アーカイブミラーまたはサードパーティが提供する他のパッケージアーカイブを指定できます。基点 URL はシステムのファイル階層構造の中にあるローカルソースを表す file://
、ウェブサーバにあるソースを示す http://
、FTP サーバにあるソースを示す ftp://
で始めることも可能です。さらに基点 URL は CD-ROM/DVD-ROM/Blu-ray ディスクからインストールしたことを表す cdrom:
で始めることも可能です。しかし基点 URL に cdrom:
を設定する場合はそれほど多くありません。なぜなら、ネットワークを使ったインストール方法がずっと一般的だからです。
./
」を指定する場合が多いです)。しかし最も多く見られるのは、リポジトリが Debian アーカイブミラーのように構造化されている、つまり複数のコンポーネントを持つ複数のディストリビューションを配布している場合です。この場合、そのマシンのディストリビューションの名前 (「コードネーム」(補注「COMMUNITY Bruce Perens、賛否の分かれるリーダー」を参照してください) または対応する「スイート」つまり stable
、testing
、unstable
) を指定し、その後に有効化するコンポーネント (またはセクション) を指定します (典型的な Debian アーカイブミラーでは main
、contrib
、non-free
などを指定します)。
cdrom
エントリはあなたの持っている CD/DVD-ROM を表しています。他のエントリと異なり、CD-ROM は常に利用できるわけではありません。なぜなら、ディスクをドライブに挿入しなければいけませんし、一度に 1 つのディスクしか読めないからです。このような理由で、CD-ROM ソースは少し違う方法で管理されます。ソースを追加するには通常 apt-cdrom
プログラムに add
パラメータを付けて実行します。このようにプログラムを実行すると、ドライブにディスクを挿入するよう要求されます。apt-cdrom
プログラムはディスクの内容を閲覧して Packages
ファイルを探します。Packages
ファイルは利用できるパッケージに関する APT のデータベースを更新するために利用されます (更新作業は apt update
コマンドで実行されます)。そして、APT はディスクに含まれるパッケージが必要になったらディスクを挿入するように要求します。
sources.list
です。
例 6.1 Debian 安定版ユーザ向けの /etc/apt/sources.list
ファイル
# セキュリティ更新 deb http://security.debian.org/ stretch/updates main contrib non-free deb-src http://security.debian.org/ stretch/updates main contrib non-free ## Debian アーカイブミラー # ベースリポジトリ deb http://deb.debian.org/debian stretch main contrib non-free deb-src http://deb.debian.org/debian stretch main contrib non-free # 安定版更新 deb http://deb.debian.org/debian stretch-updates main contrib non-free deb-src http://deb.debian.org/debian stretch-updates main contrib non-free # 安定版バックポート deb http://deb.debian.org/debian stretch-backports main contrib non-free deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
stable
、stable-updates
、stable-backports
) という別名を使わなかったのには理由があります。それは、新しい安定版が公開されることにより自動的にディストリビューションのバージョンが変わることを避けるためです。
sources.list
ファイルにリストされた最初のリポジトリから取得されることに注意してください。この理由から、非公式ソースは通常最後に追加されます。
security.debian.org
(Debian システム管理者が管理する少数のマシン) でホストされています。セキュリティ更新アーカイブには、安定版ディストリビューション用の (Debian セキュリティチームまたはパッケージメンテナが用意した) セキュリティ更新が含まれています。
security.debian.org
はテスト版用のセキュリティ更新もホストしていますが、実際にこれがホストされることはめったにありません。なぜなら、テスト版に対するセキュリティ更新は不安定版対する通常の更新手順を通じて行われることが多いからです。
proposed-updates
リポジトリからの一部抜粋したものです。安定版更新リポジトリの内容は安定版リリースマネージャが注意深く選んでいます。
proposed-updates
リポジトリとは (安定版リリースマネージャの指揮の下で) 今後予定されている更新を準備するためのリポジトリです。
proposed-updates
リポジトリに加えられますが、更新は他にもあります。なぜなら、パッケージメンテナは素早くリリースすることもないけれど重要と思われるバグを修正する機会があるからです。
proposed-updates
リポジトリを使います。以下で引用した例は stretch-proposed-updates
という別名を使っています。このような、より明白でより一貫性のある別名を使っている理由は、(旧安定版 に対する更新用のリポジトリとして) jessie-proposed-updates
という別名が存在するからです。
deb http://ftp.debian.org/debian stretch-proposed-updates main contrib non-free
stable-backports
リポジトリは「パッケージのバックポート」をホストしています。「パッケージのバックポート」という用語は古いディストリビューション (通常は安定版) 用に再コンパイルした最新ソフトウェアのパッケージを指す言葉です。
stable-backports
に収録されているバックポートは常にテスト版で利用できるパッケージから作成されます。このおかげで、次の Debian 安定版リリースが利用できるようになったら、すべてのインストール済みバックポートパッケージはそれに対応する安定版から提供されたパッケージにアップグレードできることが保証されています。
stable-backports
リポジトリはパッケージの新しいバージョンを提供しますが、APT は以下に示すように明確な指示を出さない限り (または以前に同じバックポートの古いバージョンをインストールしていない限り) バックポートパッケージをインストールしません。
$
sudo apt-get install package/stretch-backports
$
sudo apt-get install -t stretch-backports package
sources.list
です。
例 6.2 Debian テスト版/不安定版ユーザ向けの /etc/apt/sources.list
ファイル
# 不安定版 deb http://deb.debian.org/debian unstable main contrib non-free deb-src http://deb.debian.org/debian unstable main contrib non-free # テスト版 deb http://deb.debian.org/debian testing main contrib non-free deb-src http://deb.debian.org/debian testing main contrib non-free # 安定版 deb http://deb.debian.org/debian stable main contrib non-free deb-src http://deb.debian.org/debian stable main contrib non-free # セキュリティ更新 deb http://security.debian.org/ stable/updates main contrib non-free deb http://security.debian.org/ testing/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ testing/updates main contrib non-free
sources.list
ファイルを使う場合、APT は不安定版からパッケージをインストールします。これを望まない場合、APT::Default-Release
設定を使って (第 6.2.3 節「システムのアップグレード」をご覧ください) APT に他のディストリビューションから (今回の場合テスト版から) パッケージを取得するよう伝えます。
sources.list
ファイルに追加しても、実験版パッケージを体系的に利用することにはならないからです。実験版リポジトリを追加するには以下を sources.list
ファイルに追加します。
deb http://deb.debian.org/debian experimental main contrib non-free
sources.list
の例は deb.debian.og
でホストされているパッケージリポジトリを使っています。これらの URL を使うことで、ユーザは自分に近いサーバへ転送されます。転送先のサーバはコンテンツデリバリネットワーク (CDN) によって管理されています。コンテンツデリバリネットワークの主な役割は世界中にファイルのコピーを複数保存し、それらをユーザに可能な限り素早く配送することです。Debian に協力している CDN 会社は Debian パートナーであり、Debian に自社のサービスを無償提供しています。Debian はこれらのサーバを 1 つも管理していませんが、すべてのアーカイブは GPG 署名で保護されているために、この点は問題ではありません。
deb.debian.org
の性能に満足できないなら、以下の公式ミラーリストからさらに良いミラーを探してみてください:
ftp.country-code.debian.org
という (例: USA 用に ftp.us.debian.org
、フランス用に ftp.fr.debian.org
など) DNS エントリを整備しています。数多くの国に対するエントリが用意されていますし、その国の中で最良のミラー (複数個の場合もあります) に転送されます。
deb.debian.org
の代替として、過去に httpredir.debian.org
がありました。このサービスはユーザに近いミラーを見極め (主に GeoIP を使って公式ミラーから選び)、APT リクエストをそのミラーに転送するものでした。このサービスは信頼性の懸念が原因で既に停止しており、httpredir.debian.org
では deb.debian.org
と同じ CDN に基づくサービスが提供されています。
mentors.debian.net
サイトは興味深いものです (ただしこのサイトが配布しているのはソースパッケージだけです)。なぜなら mentors.debian.net
には、パッケージの組み込み過程を経ずに、公式 Debian 開発者の候補者や Debian パッケージを作りたいと望むボランティアが作成したパッケージが集められているからです。mentors.debian.net
に集められたパッケージは、品質保証のないまま、利用できるようになっています。このため、起源と整合性を必ず確認し、稼働中のシステムでパッケージを使う前にパッケージを必ずテストしてください。
sources.list
を変更する必要はありませんが、APT の外部リクエスト用のプロキシ設定をこれらのプロキシキャッシュサーバに変更する必要があります。
/etc/approx/approx.conf
に保存されています。
# <最上位ディレクトリの名前> <リモート側リポジトリの基点 URL> debian http://deb.debian.org/debian security http://security.debian.org
sources.list
ファイルを書き換えなければいけません。
# ローカル approx サーバを利用する設定を施した sources.list の見本 deb http://apt.falcot.com:9999/security stretch/updates main contrib non-free deb http://apt.falcot.com:9999/debian stretch main contrib non-free