SOURCES.LIST(5)

名前
sources.list - APT のデータ取得元の設定リスト

説明

取得元リスト /etc/apt/sources.list と /etc/apt/sources.list.d/ に含まれるファイルは、複数の取得元や様々なメディアをサポートするよう設計されています。ファイルは、1 行に一つの取得元をリストする (1 行スタイル) かまたはスタンザごとに複数の取得元を定義し、(シングルバージョンが複数の取得元から入手可能である場合には) 最も好ましい取得元を先頭に置く複数行のスタンザ (deb822 スタイル) を含みます。設定した取得元から利用可能な情報は、apt-get update (や、ほかの APT フロントエンドの同等のコマンド) で取得します。

SOURCES.LIST.D

/etc/apt/sources.list.d ディレクトリは、別々のファイルで source.list のエントリを追加する方法を提供します。次の二つの節で説明するように、二つの異なるファイル形式が許可されています。ファイル名は、含まれている形式に応じて .list または .sources のいずれかの拡張子を持っている必要があります。ファイル名は、文字 (a-z と A-Z)、数字 (0-9)、アンダースコア (_)、ハイフン (-)、ピリオド (.) のみを含むことができます。そうでなければ、Dir::Ignore-Files-Silently 設定リストのパターンに一致するもの以外に対して、ファイルを無視するという注意を APT が出力します。一致する場合は黙って無視します。

1 行スタイル形式

この形式のファイルは、.list 拡張子を持っています。取得元を指定する各行は、この型のオプションと引数が続く型 deb-src から始まります。個々のエントリは、次の行に継続することはできません。空行は無視され、行の任意の位置の # 文字はコメントとして行の残りの部分をマークします。したがって行全体をコメントアウトすることによって、エントリを無効にすることができます。オプションが提供されている場合、スペースで区切られ、すべて角カッコ ([]) で囲まれていて、行の中でスペースで区切られた型の後ろに含まれます。複数の値が許されるオプションの場合、カンマ (,) で分離されています。オプション名は、イコール記号 (=) で分離されます。複数値のオプションも -= および += をセパレータとして持ち、デフォルト値から与えられた値を削除するか、またはデフォルト値に与えられた値を含めます。

伝統的な形式とすべての apt のバージョンでサポートされています。下記のようにすべてのオプションがすべての apt のバージョンでサポートされているわけでないことに注意してください。いくつかの古いアプリケーションは、自分でこの形式をパースするので、マルチアーキテクチャのサポートの導入前には珍しいオプションに遭遇することを期待しないかもしれないことに注意してください。

DEB822 スタイル形式

この形式のファイルは、.sources 拡張子を持っています。形式は、設定された取得元または Debian ソースパッケージの debian/control ファイルから apt がダウンロードするメタデータファイルのような、Debian とその派生で使用されるほかのファイルの構文と似ています。個々のエントリは空行で分離されています: 追加の空行は無視され、行頭の # 文字は、コメントとして行全体をマークします。エントリは、スタンザに属する各行をコメントアウトして無効にすることができますが、通常は "Enabled: no" フィールドスタンザに追加してエントリを無効にする方が簡単です。フィールドを削除するか、そのフィールドを yes に設定すると、再び有効にできます。オプションは、ほかのすべてのフィールドと同じ構文を持っています: フィールド名はコロン (:) で区切られ、必要に応じてその値から空白を空けます。特に、1 行形式では、複数の値は空白で区切られ、コンマではないことに注意してください。Architectures のような複数値のフィールドは、設定を置き換えるのではなく、デフォルト値を変更する Architectures-Add および Architectures-Remove を持っています。

バージョン 1.1 以降の apt 自身によりサポートされる新しい形式です。前述のように以前のバージョンでは、通知メッセージでそのようなファイルを無視します。多くのソースおよび/またはオプションが関与している場合は特に、人間と機械を問わず、作成、拡張、変更を簡単にするために、先に述べた 1 行スタイル形式を非推奨にし、徐々にこの形式をデフォルト形式にすることが意図されています。apt ソースを作業および/またはパースしている開発者は、このフォーマットのサポートを追加することと、調整するために APT チームに連絡すること、この作業を共有することをお勧めします。ユーザはすでに自由にこの形式を採用することができますが、この形式をまだサポートしていないソフトウェアで問題が発生する場合があります。

DEB および DEB-SRC タイプ: 一般形式

deb タイプでは典型的な 2 段階の Debian アーカイブ distribution/component を参照します。distribution は通常 stable や testing または jessie や stretch のようなコード名になります。component は、main, contrib, non-free のどれかです。deb-src タイプでは、debian ディストリビューションのソースコードを、deb タイプと同じ形式で参照します。deb-src 行は、ソースインデックスを取得するのに必要です。

deb および deb-src タイプで使用する 2 つの 1 行スタイルのエントリの形式は、以下のようになります:

    deb [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]
    deb-src [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]

他に deb822 スタイルで同等のエントリもサポートしています:

         Types: deb deb-src
         URIs: uri
         Suites: suite
         Components: [component1] [component2] [...]
         option1: value1
         option2: value2

deb タイプの URI は、APT が必要な情報を見つけられるように、Debian ディストリビューションの基底を指定しなければなりません。スイートには正確なパスを指定できます。その場合コンポーネントを省略し、スイートはスラッシュ (/) で終わらなくてはなりません。これは URL で指定されたアーカイブの、特定のサブディレクトリのみに関心があるときに役に立ちます。スイートに正確なパスを指定しないのなら、少なくとも一つは コンポーネント を指定しなければなりません。

スイート は、$(ARCH) 変数を含む場合があります。$(ARCH) 変数は、システムで使用している Debian アーキテクチャ (amd64 や armel など) に展開されます。これにより、アーキテクチャに依存しない sources.list ファイルを使用できます。一般的に、これは正しいパスを指定するときに気にするだけです。そうでない場合は、APT は現在のアーキテクチャで URI を自動的に生成します。

特に 1 行スタイル形式では 1 行につき 1 つのディストリビューションしか指定できないため、同じ URI の行を複数記述することになるでしょう。APT は内部で URI リストを生成してから、並べ替えます。そして、同じインターネットホストに対しては複数の参照をまとめます。例えば FTP 接続後、切断してからまた同じホストに再接続するといった効率の悪いことをせずに、1 接続にまとめます。APT は、帯域の狭いサイトを効率よく扱うため異なるホストへは接続を並行して行うようにもしています。

最優先する取得元を最初に記述するというように、優先順に取得元を記述するのは重要です。一般的には、スピードの速い順に並べることになる (例えば、CD-ROM に続いてローカルネットワークのホスト、さらに続いて彼方のインターネットホスト) でしょう。

例として、あなたのディストリビューション用のソースは、1 行スタイル形式で次のようになります:

    deb http://us.archive.ubuntu.com/ubuntu xenial main restricted
    deb http://security.ubuntu.com/ubuntu xenial-security main restricted
    deb http://us.archive.ubuntu.com/ubuntu xenial-updates main restricted

または deb822 スタイル形式でこのようになります:

    Types: deb
    URIs: http://us.archive.ubuntu.com/ubuntu
    Suites: xenial xenial-updates
    Components: main restricted
    Types: deb
    URIs: http://security.ubuntu.com/ubuntu
    Suites: xenial-security
    Components: main restricted

DEB および DEB-SRC タイプ: オプション

各取得元エントリは、アクセスされる取得元や取得されるデータを変更するために指定するオプションを持つことができます。オプションの形式、構文と名前は、記載されているように 1 行スタイルと deb822 スタイルの間で異なりますが、どちらも同じオプションが用意されています。簡単にするために、deb822 フィールド名を一覧表示し、カッコ内に 1 行の名前を提供します。明示的に複数の値を持つオプションを設定する以外に、デフォルトをベースに変更するためのオプションもあることを忘れないでください。ここでは明示的にそれらの名前はリストしていません。サポートされていないオプションは、すべての APT バージョンで黙って無視されます。

    • Architectures (arch) は複数の値を持つオプションで、どのアーキテクチャ情報をダウンロードするか指定します。このオプションを指定しないと、APT::Architectures 設定オプションに定義してあるすべてのアーキテクチャをダウンロードします。

    • arch=arch1,arch2,... により、どのアーキテクチャ情報をダウンロードするか指定します。このオプションを指定しないと、APT::Architectures オプションに定義してある全アーキテクチャをダウンロードします。

    • Targets (target) は、apt が取得元から取得しようとするダウンロードターゲットを定義する複数の値を持つオプションです。指定しない場合、デフォルトセットは、Acquire::IndexTargets 設定スコープで定義されます。さらに、具体的なターゲットは、この複数の値を持つオプションの使用の代わりにフィールド名など識別子を使用して有効または無効にすることができます。

    • PDiffs (pdiffs) は、新しいインデックスを完全にダウンロードする代わりに、古いインデックスを更新するため PDiffs を使用するかどうかを制御する yes/no 値です。レポジトリが PDiffs の提供を公開していない場合は、このオプションの値は無視されます。Acquire::IndexTargets スコープ中に定義された特定のインデックスファイル用の同じ名前のオプション値がデフォルトになり、設定オプション Acquire::PDiffs のデフォルト値は yes です。

    • By-Hash (by-hash) は、yes、no または force の値を持つことができます。そして、APT がインデックスのよく知られた安定版の名前を使用する代わりに、期待されるファイルのハッシュ値から構築された URI を経由してインデックスを取得するかどうかを制御します。これを使用すると、ハッシュ値の不一致を避けることができますが、ミラーのサポートを必要とします。この取得元がそのサポートを示す場合、yes または no の値は、この機能の使用を有効化/無効化します。force は取得元が示すものに関係なく、機能を有効にします。Acquire::IndexTargets スコープ中に定義された特定のインデックスファイル用の同じ名前のオプション値がデフォルトになり、設定オプション Acquire::By-Hash のデフォルト値は yes です。

さらに、設定が同じ URI とスイートのすべての取得元に影響する場合のオプションがあり、このようなすべてのエントリに設定する必要があり、異なる要素間で変化することができません。APT はこのような異常を検出してエラー出力しようとします。

    • Trusted (trusted) は、APT の判断のデフォルトのトライステート値で、取得元が信頼できる、以前警告が発生した (例えば、パッケージをこの取得元からインストールしたときに)、信頼できないの 3 値です。このオプションは、APT の決定を上書きするために使用することができます。値 yes は、それが認証チェックに合格しない場合であっても、この取得元が信頼できると考えられることを常に APT に伝えます。apt-secure(8) の一部を無効にするので、(すべてであれば) ローカルおよび信頼されたコンテキストでのみ使用するべきです。そうしなければ、セキュリティが破られます。値 no は反対のことを行います。認証チェックに合格した場合でも取得元を信頼できないとして扱います。デフォルト値は明示的に設定することはできません。

    • Signed-By (signed-by) は、(_apt ユーザがアクセス可能かつ読み取り可能な必要があり、つまりすべてのユーザがファイルの読み取り権限を持っている) キーリングファイルへの絶対パスまたは trusted.gpg キーリング中または trusted.gpg.d/ ディレクトリ中のキーリングの一つのいずれかのキーのフィンガープリントです (apt-key fingerprint を参照)。オプションが設定されている場合、キーリング中のキーのみまたはこのフィンガープリントのキーのみが、このリポジトリの the apt-secure(8) 検証で使用されます。それ以外の場合は、信頼できるキーリング内のすべてのキーは、このリポジトリの有効な署名者とみなされています。

    • Check-Valid-Until (check-valid-until) は、APT がリプレイ攻撃を検出するかどうかを制御する yes/no 値です。リポジトリの作成者は、リポジトリに提供されたデータが有効とみなされる時間を宣言することができます。そして、この時間に達しているが、新しいデータが提供されていない場合、データが期限切れになったとみなされ、エラーが発生します。セキュリティを高めることに加えて、新しいバージョンにアップグレードするユーザを守るために、悪意のある攻撃者が古いデータを永遠に送れないようにすることで、長期間更新されていないミラーをユーザが特定するのに役立ちます。しかしながら、歴史的アーカイブなど、いくつかのリポジトリは、設計によりこれ以上更新されないので、このオプションを no に設定することで、このチェックを無効にすることができます。設定オプション Acquire::Check-Valid-Until の値がデフォルトになり、そのデフォルトは yes です。

    • Valid-Until-Min (valid-until-min) および Valid-Until-Max (valid-until-max) は、このリポジトリからのデータの有効期間 (秒単位) を上げたり下げたりするために使用することができます。リポジトリが独自の値を設定するリリースファイルに Valid-Until フィールドがないものを提供する場合、-Max は特に有用です。-Min は完全にチェックを無効にする代わりに (sources.list 同様にある) より頻繁に更新があるミラーの、あまりアクセスされないアーカイブの有効期間を増やすことができます。設定オプション Acquire::Min-ValidTime および Acquire::Max-ValidTime の値がデフォルトになり、その両方のデフォルト値は unset です。

URI の仕様

現在認識できる URI タイプは以下のとおりです:

file
    file スキームは、システム内の任意のディレクトリを、アーカイブとして扱えるようにします。これは NFS マウントやローカルミラーで便利です。

cdrom
    cdrom スキームは、APT がローカル CD-ROM ドライブを、メディア交換しながら使えるようにします。取得元リストに cdrom エントリを追加するには、apt-cdrom(8) プログラムを使用してください。

http
    http スキームはアーカイブとして、HTTP サーバを指定します。環境変数 http_proxy が、http://server:port/ と言った形で指定されていれば、http_proxy で指定したプロキシサーバを使用します。ユーザ認証が必要な HTTP/1.1 プロキシの場合、http://user:pass@server:port/ という形で指定してください。この認証方法は安全ではないことに注意してください。

ftp
    ftp スキームは、アーカイブに FTP サーバを指定します。APT の FTP の振る舞いは、高度に設定できます。詳細は、apt.conf(5) のマニュアルページをご覧ください。FTP プロキシは、ftp_proxy 環境変数で指定することに注意してください。この環境変数、さらにこの環境変数のみを使用して、HTTP プロキシを使用できます (HTTP プロキシサーバは大抵 FTP URL も理解できます)。設定ファイルで HTTP を利用するプロキシが指定してあっても、無視されます。

copy
    copy スキームは、file スキームと同様ですが、パッケージをその場で使用せず、キャッシュディレクトリにコピーするところが違います。リムーバブルメディアを使用していて、APT でコピーを行う場合に便利です。

rsh, ssh
    rsh/ssh メソッドは、与えられたユーザでリモートホストに接続し、ファイルにアクセスするのに rsh/ssh を使用します。あらかじめ rhosts や RSA キーの設定をしておくことをお勧めします。リモートホストからのファイル転送に、標準の find コマンドと dd コマンドを使用します。

さらに認識できる URI タイプの追加
    APT は他の追加パッケージ (apt-transport-method という命名規則) により、より多くの方法を使えるよう拡張できます。例えば、APT チームは、http メソッドと似た機能で HTTPS URI でのアクセス方法を提供する apt-transport-https パッケージも保守しています。使用するメソッドには、例えば debtorrent も利用できます。apt-transport-debtorrent(1) を参照してください。

サンプル

/home/apt/debian に格納されている stable/main, stable/contrib, stable/non-free 用のローカル (または NFS) アーカイブを使用します。

    deb file:/home/apt/debian stable main contrib non-free

    Types: deb
    URIs: file:/home/apt/debian
    Suites: stable
    Components: main contrib non-free

上記と同様ですが、不安定版 (開発版) を使用します。

    deb file:/home/apt/debian unstable main contrib non-free

    Types: deb
    URIs: file:/home/apt/debian
    Suites: unstable
    Components: main contrib non-free

上記のソースの指定は以下のようになります。

    deb-src file:/home/apt/debian unstable main contrib non-free

    Types: deb-src
    URIs: file:/home/apt/debian
    Suites: unstable
    Components: main contrib non-free

1 行目は APT::Architectures にあるアーキテクチャのパッケージ情報を取得し、2 行目は常に amd64 アーキテクチャと armel アーキテクチャのパッケージ情報を取得します。

    deb http://httpredir.debian.org/debian jessie main
    deb [ arch=amd64,armel ] http://httpredir.debian.org/debian jessie main

    Types: deb
    URIs: http://httpredir.debian.org/debian
    Suites: jessie
    Components: main
    Types: deb
    URIs: http://httpredir.debian.org/debian
    Suites: jessie
    Components: main
    Architectures: amd64 armel

archive.debian.org のアーカイブに HTTP アクセスし、hamm/main のみを使用します。

    deb http://archive.debian.org/debian-archive hamm main

    Types: deb
    URIs: http://archive.debian.org/debian-archive
    Suites: hamm
    Components: main

ftp.debian.org のアーカイブに FTP アクセスし、debian ディレクトリ以下の jessie/contrib のみを使用します。

    deb ftp://ftp.debian.org/debian jessie contrib

    Types: deb
    URIs: ftp://ftp.debian.org/debian
    Suites: jessie
    Components: contrib

ftp.debian.org のアーカイブに FTP アクセスし、debian ディレクトリ以下の unstable/contrib のみを使用します。sources.list に上記サンプルと一緒に指定された場合、両方のリソース行に対応する FTP セッションはひとつだけになります。

    deb ftp://ftp.debian.org/debian unstable contrib

    Types: deb
    URIs: ftp://ftp.debian.org/debian
    Suites: unstable
    Components: contrib

ftp.tlh.debian.org のアーカイブに HTTP アクセスし、universe ディレクトリ以下を使用します。また、i386 マシンでは unstable/binary-i386 以下にあるファイル、amd64 マシンでは unstable/binary-amd64 以下にあるファイル、その他サポートするアーキテクチャごとのファイルのみ使用します。[このサンプルは変数展開の使用法の説明でしかないことに注意してください。公式 debian アーカイブはこのような構造になっていません]

    deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/

    Types: deb
    URIs: http://ftp.tlh.debian.org/universe
    Suites: unstable/binary-$(ARCH)/

安定版、テスト版、不安定版スイートからバイナリパッケージやソース、およびmain と contrib コンポーネントを入手するため HTTP を使用しています。

    deb http://httpredir.debian.org/debian stable main contrib
    deb-src http://httpredir.debian.org/debian stable main contrib
    deb http://httpredir.debian.org/debian testing main contrib
    deb-src http://httpredir.debian.org/debian testing main contrib
    deb http://httpredir.debian.org/debian unstable main contrib
    deb-src http://httpredir.debian.org/debian unstable main contrib

    Types: deb deb-src
    URIs: http://httpredir.debian.org/debian
    Suites: stable testing unstable
    Components: main contrib

関連項目

apt-get(8), apt.conf(5)

バグ

APT バグページ[1] をご覧ください。 APT のバグを報告する場合は、 /usr/share/doc/debian/bug-reporting.txt や reportbug(1) コマンドをご覧ください。

翻訳

倉澤 望 <nabetaro@debian.or.jp> (2003-2006,2009-2012), Takuma Yamada <tyamada@takumayamada.com> (2016), Debian JP Documentation ML <debian-doc@debian.or.jp>

この翻訳文書には未訳部分が含まれている可能性があることに 注意してください。 翻訳がオリジナルに追従できていない場合、 内容を失わないようにこのようにしています。

著者

Gunthorpe Jason[FAMILY Given]

[FAMILY Given]

注記

1.  APT バグページ
    http://bugs.debian.org/src:apt