Whole document tree
Debian デベロッパーズリファレンス - Debian アーカイブ
[ 前のページ ]
[ 目次 ]
[ 1 ]
[ 2 ]
[ 3 ]
[ 4 ]
[ 5 ]
[ 6 ]
[ 7 ]
[ 8 ]
[ 9 ]
[ 10 ]
[ 11 ]
[ 次のページ ]
Debian デベロッパーズリファレンス
章 5 - Debian アーカイブ
5.1 概観
Debian GNU/Linux ディストリビューションは、数多くの Debian パッケージ (現在約
6800 ある .deb ファイル) といくつかの付加的なファイル
(ドキュメントやインストールディスクイメージなど) から構成されています。
以下は完全な Debian ディストリビューションのディレクトリツリーの一例です。
dists/stable/main/
dists/stable/main/binary-all/
dists/stable/main/binary-all/admin/
dists/stable/main/binary-all/base/
dists/stable/main/binary-all/comm/
dists/stable/main/binary-all/devel/
...
dists/stable/main/binary-i386/
dists/stable/main/binary-i386/admin/
dists/stable/main/binary-i386/base/
...
dists/stable/main/binary-m68k/
dists/stable/main/binary-m68k/admin/
dists/stable/main/binary-m68k/base/
...
dists/stable/main/source/
dists/stable/main/source/admin/
dists/stable/main/source/base/
...
dists/stable/main/disks-i386/
dists/stable/main/disks-m68k/
...
dists/stable/contrib/
dists/stable/contrib/binary-all/
dists/stable/contrib/binary-i386/
dists/stable/contrib/binary-m68k/
...
dists/stable/contrib/source/
dists/stable/non-free/
dists/stable/non-free/binary-all/
dists/stable/non-free/binary-i386/
dists/stable/non-free/binary-m68k/
...
dists/stable/non-free/source/
dists/testing/
dists/testing/main/
...
dists/testing/contrib/
...
dists/testing/non-free/
...
dists/unstable
dists/unstable/main/
...
dists/unstable/contrib/
...
dists/unstable/non-free/
...
pool/
pool/a/
pool/a/apt/
...
pool/b/
pool/b/bash/
...
pool/liba/
pool/liba/libalias-perl/
...
pool/m/
pool/m/mailx/
...
ご覧の通りに、ディストリビューションのトップレベルディレクトリには、
main、contrib、non-free
の三つのディレクトリがあります。 これらのディレクトリは sections
と呼ばれています。
各セクションには、ソースパッケージ用のディレクトリ
(source)、サポートされている各アーキテクチャ用のディレクトリ
(binary-i386、binary-m68k など)、
アーキテクチャ非依存のパッケージ用のディレクトリ (binary-all)
があります。
main セクションには、特定のアーキテクチャにおいて Debian ディスト
リビューションをインストールする際に必要となるディスクイメージと、
いくつかの基本的な文書を収録するための付加的なディレクトリ
(disks-i386、disks-m68k など) が含まれています。
binary および source ディレクトリは、 さらに
subsections に分かれています。
5.2 セクション
公式 Debian GNU/Linux ディストリビューション を構成するのが
main セクションです。 main セクションは、
私たちのガイドラインすべてに完全に適合するがゆえに公式なものです。
他の二つのセクションは程度の違いはありますが、
このガイドラインに適合しないために、 Debian の公式な構成要素ではありません。
main セクションの全パッケージは Debian
フリーソフトウェアガイドライン (DFSG) と Debian
ポリシーマニュアル
に記載されている他のポリシー上の要件を完全に満たしています。 DEFS
は「フリーソフトウェア」に関する私たちの定義です。 詳しくは Debian
ポリシーマニュアルをご覧ください。
DFSG に適合しないパッケージは non-free セクションに置かれます。
これらのパッケージに関しては、その利用のサポートや non-free
ソフトウェアパッケージのためのインフラ
(バグ追跡システムや、メーリングリストなど)は提供しますが、 Debian
ディストリビューションの一部とは見なされません。
contrib セクションのパッケージは DFSG
に適合していなければなりませんが、 他の要件を満たせないものが当てはまります。
例えば non-free パッケージに依存するパッケージなどです。
この三つのセクションに関しては、 Debian
ポリシーマニュアル により正確な定義が記述されています。
上記の説明は簡易的なものです。
アーカイブのトップレベルを三つのセクションに分けていることは、
インターネット上の FTP サーバや CD-ROM などを経由して Debian
を配布したいと考える人々にとって重要です。 というのも、main および
contrib セクションのみを配布するならば、
あらゆる法的な危険を避けることができるからです。 例えば non-free
セクションのパッケージのいくつかは 商業配布が禁じられています。
一方、CD-ROM ベンダにとっては non-free
パッケージの個々のライセンスをチェックし、許可を得たものを CD-ROM
に収録することが容易になります。
(この扱いはベンダによってさまざまでしょうから、 この作業は Debian
開発者によっては行なわれません。)
5.3 アーキテクチャ
当初 Linux カーネルが利用できたのは Intel i386 (およびそれ以降)
プラットフォームのみで、Debian も同様でした。 しかし Linux がより普及すると、
カーネルも他のアーキテクチャへと移植されるようになりました。
Linux 2.0 カーネルは Intel x86 や、DEC Alpha、SPARC、(Atari や、
Amiga、Macintoshes といった) Motorola 680x0 、MIPS、PowerPC
などをサポートしています。 Linux 2.2 カーネルはさらに、ARM や UltraSPARC
を含むより多くのアーキテクチャをサポートします。 Debian は、Linux
がサポートするプラットフォームを 同様にサポートすべきだとしています。 そのため
Debian には作業中の移植版があり、 また実際のところ非 Linux
カーネルへの移植版も作業中です。 i386 (Intel x86 の私たちの呼び名)
は別にして、 この文書が書かれている現在、m68k や、alpha、
powerpc、sparc、hurd-i386 arm
などが作業中です。
Debian GNU/Linux 1.3 は i386 版のみが利用可能でした。 Debian 2.0 では
i386 および m68k アーキテクチャ版が提供されました。 Debian
2.1 では i386、m68k、alpha、および sparc
アーキテクチャ版が提供されました。 Debian 2.1 では powerpc
アーキテクチャのサポートが追加されます。
特定の移植版に関する開発者向け、あるいはユーザ向の情報は Debian 移植版ウェブページ
をご覧ください。
5.4 サブセクション
main、contrib、non-free の各セクションは、
インストールプロセスやアーカイブのメンテナンスを単純化するために
subsections に分割されます。 サブセクションは、`base'
サブセクションを除けば、 正式には定義されていません。 サブセクションは単に、
利用可能なパッケージの整理と閲覧を容易にするために存在しています。
どのセクションが利用可能かどうかは、 現行の Debian
ディストリビューションをチェックしてください。
5.5 パッケージ
Debian パッケージには、source パッケージと binary
パッケージの二種類があります。
ソースパッケージは、.dsc ファイルと .tar.gz
ファイル、あるいは、.dsc ファイルと
.orig.tar.gz、.diff.gz
ファイルといった二つないし三つのファイルから構成されています。
Debian 専用に開発され Debian 以外で配布されていないパッケージでは、
プログラムのソースを含むファイルは .tar.gz ファイルのみです。 一方
Debian 以外でも配布されているパッケージの場合は、 .orig.tar.gz
ファイルにいわゆる upstream source code を収めます。これは
upstream maintainer (たいていはそのソフトウェアの作者)
によって配布されているソースコードです。 この場合、Debian
開発者によって加えられた変更は .diff.gz ファイルに収められます。
.dsc ファイルには、ソースパッケージのファイル一覧や、 チェックサム
(md5sums )、パッケージに関するいくらかの追加情報
(パッケージ開発者やバージョンなど) が収められます。
5.6 ディストリビューションディレクトリ
前章で説明したディレクトリシステムは、 distribution directories
に含まれるものです。 全ディストリビューションは Debian
アーカイブのトップレベルディレクトリ にある dists
ディレクトリに収められています。
(トップレベルディレクトリから各ディストリビューションに張られている
シンボリックリンクは、下位互換のためにあるもので、重要なものではありません。)
要約すれば、Debian アーカイブは FTP
サーバにルートディレクトリを持っているといえます。 例えば、ミラーサイト
ftp.us.debian.org では、 Debian アーカイブ全体は /debian
に収められていますが、その位置は共通しています。 (/pub/debian
にある場合もあります。)
実際の個々のディストリビューションは そのアーカイブのルートにある
dists ディレクトリに収められています。
以下はそのレイアウトの概要です。
archive root/dists/distribution/section/architecture/subsection/packages
このレイアウトから推察して、 slink ディストリビューションの i386
ベースパッケージを探すには /debian/dists/slink/main/binary-i386/base/
を見ればいいことが分かるでしょう。
5.6.1 安定版、開発版、(時に) フリーズ版
Debian のディストリビューションには (dists/stable にある)
stable (安定版) と呼ばれるものと、 (dists/unstable
にある) unstable (開発版)と呼ばれるものの二つが常に存在します。
こちらは Debian プロジェクトの開発プロセスを反映しています。
活発な開発は、unstable ディストリビューションで行なわれます。
(そのためこのディストリビューションはときに development distribution
とも呼ばれます。) 全 Debian 開発者はいつでも、
このディストリビューションで自分のパッケージを更新することができます。
そのため、このディストリビューションの内容は日に日に変わっていきます。
このディストリビューションは特別にテストされているものではないので、
時に「不安定」なものです。
開発期間が終了すると、unstable ディストリビューションは
frozen と呼ばれる新たなディストリビューションディレクトリに
コピーされます。 この後は、バグフィックスを除くいかなる変更も frozen
ディストリビューションに対してはできません。 こちらが「フリーズ版
frozen」と呼ばれるのはそのためです。 一ヶ月あるいはもうすこし以上経つと、
frozen ディストリビューションは stable に名前を変えます。
古い stable は上書きされ、この時点で消去されます。
この開発サイクルは unstable ディストリビューションが、 frozen
ディストリビューションとしてのテスト期間を経て、 stable
ディストリビューションになるとの仮定に基づいたものです。
あるディストリビューションが安定していると見なされたとしても、
二三のバグは必ず残っているものです。 stable
ディストリビューションが時々更新されるのはこのためです。
しかしながら、これらの更新は極めて注意深くテストされ、
新たなバグを持ち込む危険を避けながら個々にアーカイブに導入されねばなりません。
stable ディストリビューションへの追加推奨パッケージは、
proposed-updates ディレクトリにあります。 検査に合格した
proposed-updates にあるこれらのパッケージは、 定期的にまとめて
stable ディストリビューションに移動され、 stable
ディストリビューションのリビジョンレベルが上げられます。 (例えば、`1.3' は
`1.3r1' に、`2.0r2' は `2.0r3' となっていきます。)
古い unstable ディストリビューションが frozen
ディストリビューションに移動されると、新たな unstable
ディストリビューションが作られるため、``freeze'' 期間の間も unstable
ディストリビューションの開発は続けられます。
また他の変更点としては、frozen ディストリビューションが公式に
リリースされた際、Debian アーカイブから古い stable
ディストリビューションが (archive.debian.org には残されますが)
完全に消去されることがあげられます。
要約すれば、常に stable および unstable
ディストリビューションが利用可能で、 時々 frozen
ディストリビューションが一ヶ月かもしくはそれ以上の間 設置されるということです。
5.6.2 実験版
experimental ディストリビューション (実験版) は
特別なディストリビューションです。 こちらは `stable' や `unstable' とは異なり、
完全なディストリビューションではありません。 こちらはその代わりに、
お使いのシステムを破壊しかねない極めて実験的なソフトウェアのための、
一時的な設置領域であることを意味します。 experimental
ディストリビューションからパッケージを ダウンロードしインストールするユーザは、
このことを十分に注意すべきことが望まれます。 つまり、experimental
ディストリビューションに賭けることは 間違っているということです。
experimental ディストリビューションの利用を選択する際、
開発者は十分に注意すべきです。
もしあるパッケージが極めて不安定なものだったとしても、 description
(パッケージ解説文) に二三の警告を掲載するなどして、 unstable
ディストリビューションにアップロードする方がよいでしょう。
しかしながら、システムに極めて深刻な損害を与えかねないソフトウェアに関しては、
experimental ディストリビューションにアップロードするほうが
適切でしょう。
例えば実験的な暗号ファイルシステムなどは、おそらく experimental
ディストリビューション向きでしょう。
完全に異なる設定を用いる新しいベータ版のソフトウェアなども、
開発者の裁量によりますが experimental
ディストリビューション向きでしょう。
新しくてもシステムに損害を与えるようなことがないソフトウェアは、
unstable ディストリビューションにアップロード可能です。
お使いのシステムのアップグレードが不完全な場合やその状況が複雑な場合は、
テスタたちが用意にアクセスできるように experimental
ディストリビューションを 一時的な領域として利用することもできます。
しかしながら、experimental ディストリビューションを
個人的な一時領域として利用することは、常によい考えであるとは限りません。
そこに設置したファイルを自分で置き換えたり更新したりできないからです。
(dinstall や Debian アーカイブメンテナがそれを行ないます。)
さらに、そのパッケージを unstable
ディストリビューションにアップロードした場合には、 experimental
ディストリビューション上からそれを削除するよう
アーカイブメンテナに依頼することを覚えておかなくてはいけないでしょう。 Debian
アーカイブメンテナの負担を減らすためにも、 こちらに関しては一般的に
va.debian.org
上にある個人用ウェブスペースを利用することがより適切です。
5.7 リリースコード名
リリースされた各 Debian ディストリビューションには code name
が付けられます。 Debian 1.1 には `buzz'、Debian 1.2 には `rex'、Debian 1.3 には
`bo'、 Debian 2.0 には `hamm'、Debian 2.1には `slink'、そして Debian 2.2 には
`potato' という code name が付けられています。 また、`sid'
と名づけられた「仮想ディストリビューション」もあります。 こちらには、Debian
によって公式にはサポートおよびリリースされていない
アーキテクチャのパッケージが収録されます。 これらのアーキテクチャは、
将来的にはメインディストリビューションに統合される計画にあります。
Debian はオープンな開発モデルを取っているので、 unstable
ディストリビューションでさえも Debian FTP、HTTP
サーバネットワークからインターネット経由で 配布されています。
そのため、開発バージョンを収録したディレクトリの名前を `unstable'
としたならば、そのバージョンをリリースする際にはその名前を `stable'
に変更しなければなりませんが、 このことによって FTP
ミラーはディストリビューション全体 (すでに極めて巨大です!)
を再取得しなければならなくなります。
一方初めからディストリビューションディレクトリを Debian-x.y
としたならば、Debian リリース x.y
が利用可能だと受け止められてしまうでしょう。 (過去にある CD-ROM
ベンダが、pre-1.0 開発バージョンをベースに Debian 1.0 CD-ROM
を作成したことがありました。 Debian 最初の公式リリースが 1.0 ではなく 1.1
だったのはこのためでした。)
そのため、アーカイブ中のディストリビューションディレクトリの名前は、
そのリリース状態ではなく (`slink' のような) コード名によって定められています。
これらの名前は、開発期間中もリリースの後も同じものになっており、
変更可能なシンボリックリンクが、
現行のリリース済み安定ディストリビューションを指し示します。
ディストリビューションディレクトリの実体に code names を用い、
適切なリリースディレクトリを指すために stable、unstable、
frozen へのシンボリックリンクを用いるのはこのためです。
[ 前のページ ]
[ 目次 ]
[ 1 ]
[ 2 ]
[ 3 ]
[ 4 ]
[ 5 ]
[ 6 ]
[ 7 ]
[ 8 ]
[ 9 ]
[ 10 ]
[ 11 ]
[ 次のページ ]
Debian デベロッパーズリファレンス
ver. 2.11, 2002年04月08日
Adam Di Carlo, current maintainer aph@debian.org
Christian Schwarz schwarz@debian.org
Ian Jackson ijackson@gnu.ai.mit.edu
|