#
5 ビルド済み配布物を作成する

``ビルド済み配布物'' とは、おそらく皆さんが通常 ``バイナリパッケージ'' とか ``インストーラ'' (背景にしている知識によって違います) と考えて いるものです。とはいえ、配布物が必然的にバイナリ形式になるわけでは ありません。配布物には、 Python ソースコード、かつ/またはバイトコード が入るからです; また、我々はパッケージという呼び方もしません。 すでに Python の用語として使っているからです (また、 ``インストーラ'' という言葉は主流のデスクトップシステム特有の用語です)

ビルド済み配布物は、モジュール配布物をインストール作業者にとって できるだけ簡単な状況にする方法です: ビルド済み配布物は、RPM ベースの Linux システムユーザにとってはバイナリ RPM 、Windows ユーザに とっては実行可能なインストーラ、 Debian ベースの Linux システム では Debian パッケージ、などといった具合です。 当然のことながら、一人の人間が世の中にある全てのプラットフォーム用 にビルド済み配布物を作成できるわけではありません。そこで、 Distutils の設計は。開発者が自分の専門分野 -- コードを書き、ソース配布物 を作成する -- に集中できる一方で、パッケージ作成者 (packager) と呼ばれる、開発者とエンドユーザとの中間に位置する人々が ソースコード配布物を多くのプラットフォームにおけるビルド済み配布物 に変換できるようになっています。

もちろん、モジュール開発者自身がパッケージ作成者かもしれません; また、 パッケージを作成するのはオリジナルの作成者が利用できないプラットフォームに アクセスできるような ``外部の'' ボランティアかもしれませんし、 ソース配布物を定期的に取り込んで、アクセスできるかぎりの プラットフォーム向けにビルド済み配布物を生成するソフトウェアかも しれません。作業を行うのが誰であれ、パッケージ作成者は setup スクリプトを利用し、 `bdist` コマンドファミリを使って ビルド済み配布物を作成します。

単純な例として、Distutils ソースツリーから以下のコマンドを 実行したとします:

    python setup.py bdist

すると、Distutils はモジュール配布物 (ここでは Distutils 自体) を ビルドし、``偽の (fake)'' インストールを (build ディレクトリで) 行います。そして現在のプラットフォームにおける標準の形式でビルド済み 配布物を生成します。デフォルトのビルド済み形式とは、Unixでは ``ダム (dumb)'' の tar ファイルで、 Windows ではシンプルな実行形式の インストーラになります。(tar ファイルは、特定の場所に手作業で解凍 しないと動作しないので、 ``ダム: 賢くない'' 形式とみなします。)

従って、 Unix システムで上記のコマンドを実行すると、 Distutils-1.0.plat.tar.gz を作成します; この tarball を正しい場所で解凍すると、ちょうどソース配布物を ダウンロードして `python setup.py install` を実行したのと 同じように、正しい場所に Distutils がインストールされます。 (``正しい場所 (right place)'' とは、ファイルシステムのルート下か、 Python の prefix ディレクトリ下で、これは `bdist_dumb` に指定するコマンドで変わります; デフォルトの設定では、prefix からの相対パスにインストール されるダム配布物が得られます。)

言うまでもなく、 pure Python 配布物の場合なら、 `python setup.py install` するのに比べて大して簡単になったとは 言えません--しかし、非 pure 配布物で、コンパイルの必要な拡張 モジュールを含む場合、拡張モジュールを利用できるか否かという大きな 違いになりえます。 また、 RPM パッケージや Windows 用の実行形式インストーラのような ``スマートな'' ビルド済み配布物を作成しておけば、たとえ拡張モジュール が一切入っていなくてもユーザにとっては便利になります。

`bdist` コマンドには、 --formats オプション があります。これは `sdist` コマンドの場合に似ていて、 生成したいビルド済み配布物の形式を選択できます: 例えば、

    python setup.py bdist --format=zip

とすると、Unix システムでは、 Distutils-1.0.plat.zip を作成します-- 先にも述べたように、Distutils をインストールするには、 このアーカイブ形式をルートディレクトリ下で展開します。

ビルド済み配布物として利用できる形式を以下に示します:

形式 | 説明 | 注記
--- | --- | ---
`gztar` | gzip 圧縮された tar ファイル (.tar.gz) | (1),(3)
`ztar` | compress 圧縮された tar ファイル (.tar.Z) | (3)
`tar` | tar ファイル (.tar) | (3)
`zip` | zip ファイル (.zip) | (4)
`rpm` | RPM 形式 | (5)
`pkgtool` | Solaris pkgtool 形式 |
`sdux` | HP-UX swinstall 形式 |
`wininst` | Windows 用の自己展開形式 ZIP ファイル | (2),(4)

注記:

(1)
  Unixでのデフォルト形式です
(2)
  Windows でのデフォルト形式です