アプリケーションパッケージ開発者ガイド

パッケージを構築する前の考慮事項

パッケージを構築する前に、製品を 1 つ以上のパッケージで構成するかどうかを決定する必要があります。小さいパッケージを数多くインストールする場合、大きなパッケージを 1 つインストールするよりも時間がかかります。単一のパッケージを作成することが良い選択ではありますが、いつでも可能というわけではありません。複数のパッケージを構築することに決めた場合、アプリケーション コードを分割する方法を決定する必要があります。この節では、パッケージの構築を計画するときに使用する条件の一覧を示します。

パッケージ化の条件は、各条件の間でトレードオフが生じることがよくあります。すべての要件を均等に満たすことは、多くの場合、困難です。これらの条件を重要度の高いものから順に紹介します。ただし、この順序は、大まかな目安であり、状況に応じて変更すべきものです。条件はどれも重要ですが、適切なパッケージのセットを作成するためにこれらの条件を最適化するかどうかはユーザーで判断してください。

パッケージ設計の詳細な手法については、第 6 章パッケージの作成のための高度な手法を参照してください。

パッケージをリモートでインストールできるようにする

すべてのパッケージを、リモートでインストールできるようにしてください。パッケージをリモートでインストールできれば、管理者がクライアントシステムでインストールできるので、pkgadd コマンドを実行するルート (/) ファイルシステムにパッケージをインストールする必要はなくなります。

クライアントサーバー構成の最適化

パッケージの配置時に、スタンドアロンシステムやサーバーなど、各種のシステムソフトウェア構成を検討します。構成タイプごとにインストールが最適化されるよう、パッケージを適切に設計し、影響を受けるファイルを分割します。たとえば、ルート (/) ファイルシステムと /usr ファイルシステムの内容を分割すると、サーバー構成のサポートが容易に行えるようになります。

機能ごとのパッケージ

パッケージは、自己完結的で、明確に 1 つにまとまった機能を持つようにしてください。たとえば、UFS を含むパッケージは、すべての UFS 機能を含み、UFS のバイナリにのみ制限されるべきです。

パッケージは、顧客の観点から見て、機能単位ごとに分類するようにしてください。

ロイヤリティの適用規定に沿ったパッケージ

契約上の合意のためにロイヤリティーの支払いが必要となるコードは、専用のパッケージまたはパッケージグループに配置します。必要以上の数のパッケージにコードを分散させないでください。

依存するシステムごとのパッケージ

システムに依存するバイナリは専用のパッケージに格納します。たとえば、カーネルコードは、各実装アーキテクチャーを個々のパッケージインスタンスで構成して、専用のパッケージに格納するようにしてください。また、この規則は、別のアーキテクチャーのバイナリにも適用されます。たとえば、SPARC システムのバイナリと x86 システムのバイナリは、それぞれ別のパッケージに格納するようにしてください。

パッケージ内での重複の排除

パッケージを作成するとき、重複するファイルはできるだけ削除します。ファイルが無駄に重複すると、サポートとバージョン管理が困難になります。複数のパッケージが製品に含まれる場合、それぞれの内容を繰り返し比較し、重複するファイルがないか調べてください。

ローカライズ版ごとのパッケージ

ローカライズ版に固有の項目は、専用のパッケージに格納するようにしてください。理想的なパッケージモデルは、製品のローカライズ版をロケールごとに 1 つのパッケージとして配信するものです。残念ながら、組織的な境界が、機能的な境界や製品的な境界と両立しない場合があります。

また、各国で共有される標準設定もパッケージで配信できます。このようにパッケージを設計すると、ローカライズ版の変更に必要なファイルを識別し、ローカライズ版パッケージの配信形式を標準化できます。