Fink

パッケージ作成 - 4. ファイルシステムのレイアウト

以下はファイルシステムのレイアウトのガイドラインで, Fink のパッケージ作成ポリシーの一部です.

4.1 ファイルシステム構造標準 (Filesystem Hierarchy Standard)

Fink は ファイルシステム構造標準 (Filesystem Hierarchy Standard, 略して FHS ) の精神に従います. しかし従えるのは飽くまでも精神のみです. それは FHS が / 以下と /usr 以下の階層を管理できるシステムベンダ向けに作られたからです. Fink はインストールディレクトリ (別名「プリフィクス」) 以下のみを管理するアドオン・ディストリビューションです. 以降の例ではデフォルトの「プリフィクス」 /opt/sw を使います.

4.2 ディレクトリ

ファイルは以下のサブディレクトリに保存します:

FieldValue
/opt/sw/bin

一般的な実行可能プログラム用. サブディレクトリはなし.

/opt/sw/sbin

管理者のみが使うことを意図した実行可能プログラム用. バックグラウンドで動くデーモンもここに入る. サブディレクトリはなし.

/opt/sw/include

C と C++ のヘッダファイル用. 必要に応じてサブディレクトリを作成してよい. 標準の C ヘッダファイルと混同しそうなヘッダファイルをインストールする場合は必ずサブディレクトリに入れること.

/opt/sw/lib

アーキテクチャ依存のデータファイルやライブラリ用. 静的および共有ライブラリは,避ける理由が特にない限り /opt/sw/lib 直下に置きます. ユーザが直接起動することのない実行可能プログラム (普通なら libexec 下に置かれるはずのもの) もここに置きます.

パッケージは,固有のデータやロード可能モジュールを保存するサブディレクトリを自由に作成できます. 必ず互換性を考慮したディレクトリ名を使って下さい. 賢明な方法は,そのサブディレクトリの名前にパッケージの「メジャーバージョン」を含めたり, 「メジャーバージョン」をディレクトリ名にしたさらに深い階層を作ることです (/opt/sw/lib/perl5/opt/sw/lib/apache/1.3 など). ディレクトリにホストの種類を使うときには注意が必要です. powerpc-apple-darwin1.3.3 は,互換性の観点から問題があります. powerpc-apple-darwin1.3 または単に powerpc-apple-darwin とします.

/opt/sw/lib/ppc64 /opt/sw/lib/x86_64

このディレクトリは 64-bit ライブラリ用で, powerpc アーチテクチャーでは /opt/sw/lib/ppc64 が, i386 アーチテクチャーでは /opt/sw/lib/x86_64 が用いられます. 'fat' としてビルドされたライブラリは, /opt/sw/lib に保存されます.

/opt/sw/share

アーキテクチャに依存しないデータファイル用で, /opt/sw/lib と同じルールが当てはまります. よく使われるサブディレクトリについては後述します.

/opt/sw/share/man

man ページ用. この中は man のセクションに従って分類されます. /opt/sw/bin/opt/sw/sbin の中の全てのプログラムには, 対応した man ページがここになければいけません.

/opt/sw/share/info

Texinfo ソースから生成される Info 形式のドキュメント用. 索引ファイル dir のメンテナンスは Debian 版 install-info (パッケージ dpkg の一部) が自動的に行う. パッケージ記述のフィールド InfoDocs を使って, パッケージスクリプト PostInst 及び PreRm で使うための適切なコードを自動生成する. Fink は,それぞれのパッケージが勝手に dir ファイルを作成しないことを保証する. サブディレクトリはなし.

/opt/sw/share/doc

man でも Info でもないドキュメント用. README, LICENSE, COPYING はここに保存する. 全てのパッケージは,ここに各「パッケージ名」に対応したサブディレクトリを作らなければいけない. 名前には (「パッケージ名」そのものの一部でない限り) 「バージョン」を含めてはいけない. 単に %n を使うとよいでしょう.

/opt/sw/share/locale

国際化で使うメッセージカタログ用.

/opt/sw/var

ディレクトリ var には変化するデータを保存する. (スプールディレクトリ,ロックファイル,状態のデータベース,ゲームのハイスコアやログファイルなど)

/opt/sw/etc

設定ファイル用. 複数のファイルを使用するパッケージは,ここにサブディレクトリを作らなければいけない. 区別のため,そのサブディレクトリにはパッケージまたはその中のプログラムの名前を付けなければいけない.

/opt/sw/src

ソースコードを保存,ビルドするディレクトリ. パッケージはここに何もインストールしてはいけない.

/opt/sw/Applications

このディレクトリには,コマンドラインから実行するのではなく,ダブルクリックで実行する OS X 型のアプリケーションを保存する.

/opt/sw/Library/Frameworks

このディレクトリには,OS X 型のアプリケーションが使用する,OS X 型のフレームワークを保存する.

4.3 避けるべきこと

/opt/sw 下には,上述のもの以外ディレクトリを作ってはいけません. 特に以下のディレクトリを作らないこと: /opt/sw/man, /opt/sw/info, /opt/sw/doc, /opt/sw/libexec, /opt/sw/lib/locale

次: 5. コンパイラ