Appendix C. pkgsrc FTP サーバーのディレクトリー配置

Table of Contents

C.1. distfiles: ソースファイルの配布物
C.2. misc: 種々雑多なもの
C.3. packages: バイナリーパッケージ
C.4. reports: バルクビルドの結果報告
C.5. current, pkgsrc-20xxQy: ソースパッケージ

他の大規模プロジェクトと同様に、初心者の方にとって pkgsrc のディレクトリー配置は非常に複雑なものです。 ftp.NetBSD.org での基点ディレクトリーは /pub/pkgsrc/ です。 他のサーバーでは、基点ディレクトリーの場所は異なるかもしれませんが、 基点ディレクトリー以下の内容はどのサーバーでもすべて同じはずです。 このディレクトリーには、以下で説明するような、 いくつかのサブディレクトリーがあります。

C.1. distfiles: ソースファイルの配布物

distfiles ディレクトリーは、 pkgsrc の各パッケージのアーカイブファイルのうち、 このサーバーにミラーされているものを多数含んでいます。 配布ファイルのファイル名にバージョン番号が明示的に含まれていなかったり、 一般的すぎる名前 (たとえば release.tar.gz) だったりする場合には、パッケージ名を冠したサブディレクトリーが使われます。

C.2. misc: 種々雑多なもの

このディレクトリーは、 個々の pkgsrc 開発者がサーバーに置いておく価値があると判断したものを含んでいます。

C.3. packages: バイナリーパッケージ

このディレクトリーは、 pkgsrc が対応している各種プラットフォーム用のバイナリーパッケージを含んでいます。 各プラットフォーム用のサブディレクトリーは OPSYS/ARCH/OSVERSION_TAG のような形式になっています。これらの意味は以下のとおりです。

  • OPSYS は、 当該パッケージが構築された対象のオペレーティングシステム名です。 この名前は uname コマンドの出力に合わせているので、 ふだん聞き慣れた名前とは違う名前になっていることがあります。

  • ARCH は、 当該パッケージが構築された対象のプラットフォームのハードウェアアーキテクチャー名です。 ABI (Application Binary Interface) が複数あるプラットフォームでは、 ABI も含めた名称になっています。

  • OSVERSION は、 オペレーティングシステムのバージョンです。バージョン番号が頻繁に変わる場合 (たとえば NetBSD-current) は、たとえば 4.99.x のように、頻繁に変わる部分を x に置き換えています。

  • TAG は、安定版の枝の場合は 20xxQy、 HEAD の場合は head です。後者は、 パッケージが定期的に更新されるものである場合にのみ使います。 そうでない場合は、たとえば head_20071015 のように、 pkgsrc のチェックアウト日を付け加えた形にします。

このような方式となっている理由は、pkgsrc の利用者がバイナリーパッケージを探すときに、 サーバー上のディレクトリーを辿って、 自分のマシンに最適なバイナリーパッケージを簡単に見つけられるからです。 利用者はたいてい、オペレーティングシステムとハードウェアアーキテクチャーを知っているので、 OPSYS と ARCH を最初にしています。これらを選べば、 OSVERSION と TAG の最適な組合せを選ぶことができます。 通常の場合、オペレーティングシステムのバージョンが違っても、 パッケージには互換性があるからです。

これらの各ディレクトリーには、 当該プラットフォーム用のバイナリーパッケージ全体が置かれています。 All というディレクトリーがあり、 ここにすべてのバイナリーパッケージを含んでいます。 このほか、カテゴリー別のディレクトリーがあり、 バイナリーパッケージの実体へのシンボリックリンクを含んでいます。

C.4. reports: バルクビルドの結果報告

ここには、構築できないプラットフォームがあるパッケージを修正したい方向けに、 バルクビルドの結果の報告が置いてあります。 サブディレクトリーの構造はSection C.3, “packages: バイナリーパッケージ”と同じです。

C.5. current, pkgsrc-20xxQy: ソースパッケージ

このディレクトリーは pkgsrc そのもの、つまり、 ソースアーカイブからバイナリーパッケージを作る方法を定義したファイル一式を含んでいます。

pkgsrc ディレクトリーは、 CVS リポジトリーのスナップショットを含んでおり、定期的に更新されます。 pkgsrc.tar.gz ファイルは、 このディレクトリーと同じ内容を含んでおり、 全体をダウンロードできるようになっています。

四半期ごとの枝用のディレクトリーには、 さらに pkgsrc-20xxQy.tar.gz というファイルがあります。 これは、枝が分岐した時点の状態の pkgsrc を含んでいます。