[ 前のページ ] [ 著作権表示 ] [ 目次 ] [ 次のページ ]

Debian デベロッパーズリファレンス - 章 5
Debian アーカイブ


5.1 概観

Debian GNU/Linux ディストリビューションは、数多くの Debian パッケージ (現在約 3300 ある .deb ファイル) といくつかの付加的なファイル (ドキュメントやインストールディスクイメージなど) から構成されています。

以下は完全な Debian ディストリビューションのディレクトリツリーの一例です。

     main/
     main/binary-all/
     main/binary-all/admin/
     main/binary-all/base/
     main/binary-all/comm/
     main/binary-all/devel/
          ...
     main/binary-i386/
     main/binary-i386/admin/
     main/binary-i386/base/
          ...
     main/binary-m68k
     main/binary-m68k/admin/
     main/binary-m68k/base/
          ...
     main/source/
     main/source/admin/
     main/source/base/
          ...
     main/disks-i386/
     main/disks-m68k/
          ...
     
     contrib/
     contrib/binary-all/
     contrib/binary-i386/
     contrib/binary-m68k/
          ...
     contrib/source/
     
     non-free/
     non-free/binary-all/
     non-free/binary-i386/
     non-free/binary-m68k/
              ...
     non-free/source/

ご覧の通りに、ディストリビューションのトップレベルディレクトリには、 maincontribnon-free の三つのディレクトリがあります。 これらのディレクトリは sections と呼ばれています。

各セクションには、ソースパッケージ用のディレクトリ (source)、サポートされている各アーキテクチャ用のディレクトリ (binary-i386binary-m68k など)、 アーキテクチャ非依存のパッケージ用のディレクトリ (binary-all) があります。

main セクションには、特定のアーキテクチャにおいて Debian ディスト リビューションをインストールする際に必要となるディスクイメージと、 いくつかの基本的な文書を収録するための付加的なディレクトリ (disks-i386disks-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 や、alphapowerpcsparchurd-i386 arm などが作業中です。

Debian GNU/Linux 1.3 は i386 版のみが利用可能でした。 Debian 2.0 では i386 および m68k アーキテクチャ版が提供されました。 Debian 2.1 では i386m68kalpha、および sparc アーキテクチャ版が提供されました。 Debian 2.1 では powerpc アーキテクチャのサポートが追加されます。

特定の移植版に関する開発者向け、あるいはユーザ向の情報は Debian 移植版ウェブページ をご覧ください。


5.4 サブセクション

maincontribnon-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 を用い、 適切なリリースディレクトリを指すために stableunstablefrozen へのシンボリックリンクを用いるのはこのためです。


[ 前のページ ] [ 著作権表示 ] [ 目次 ] [ 次のページ ]
Debian デベロッパーズリファレンス
ver. 2.7.1, 2 Oct, 1999
Adam Di Carlo, current maintainer aph@debian.org
Christian Schwarz schwarz@debian.org
Ian Jackson ijackson@gnu.ai.mit.edu