まだ作成していない場合、pkginfo ファイルを作成します。
作成手順については、「pkginfo ファイルの作成方法」を参照してください。
まだ作成していない場合、prototype ファイルを作成します。
作成手順については、「pkgproto コマンドを使用して prototype ファイルを作成する方法」を参照してください。
現在の作業用ディレクトリを、パッケージの prototype ファイルを含むディレクトリと同じものにします。
パッケージを構築します。
$ pkgmk [-o] [-a arch] [-b base-src-dir] [-d device] [-f filename] [-l limit] [-p pstamp] [-r rootpath] [-v version] [PARAM=value] [pkginst] |
既存のバージョンのパッケージを上書きします。
pkginfo ファイル内のアーキテクチャー情報を上書きします。
pkgmk コマンドが開発システム上のオブジェクトを検索するときに base-src-dir が再配置可能なパス名の先頭に追加されるように要求します。
device (絶対ディレクトリパス名、フロッピーディスク、またはリムーバブルディスクの場合がある) にパッケージがコピーされるように指定します。
prototype ファイルとして使用されるファイル filename を指定します。デフォルト名は、prototype または Prototype です。
512 バイトブロック単位で、出力デバイスの最大サイズを指定します。
pkginfo ファイル内の製品スタンプ定義を上書きします。
開発システム上でオブジェクトを検出するためにルートディレクトリ rootpath が使用されるように要求します。
pkginfo ファイル内のバージョン情報を上書きします。
グローバルの環境変数を設定します。小文字で始まる変数は、構築時に解釈処理されます。大文字で始まる変数は pkginfo ファイルに配置され、インストール時に使用されます。
パッケージの省略名または特定のインスタンス (例: SUNWcadap.4) を指定します。
詳細については、pkgmk(1) のマニュアルページを参照してください。
パッケージのコンテンツを確認します。
$ pkgchk -d device-name pkg-abbrev Checking uninstalled directory format package pkg-abbrev from device-name ## Checking control scripts. ## Checking package objects. ## Checking is complete. $ |
パッケージの位置を指定します。device-name には、完全なディレクトリ パス、またはテープやリムーバルディスクの識別子を指定できます。
チェックされる、1 つ以上の (空白で区切られた) パッケージの名前です。やこの引数を省略すると、pkgchk コマンドにより、使用可能なすべてのパッケージがチェックされます。
pkgchk コマンドは、必要に応じて、パッケージのチェックされる内容を印刷し、警告やエラーを表示します。pkgchk コマンドについては、「パッケージの整合性の確認」を参照してください。
エラーについては、真剣に検討するようにしてください。エラーがある場合、スクリプトの修正が必要な可能性があります。pkgchk コマンドの出力が好ましくない場合、すべてのエラーをチェックしてから先に進んでください。
次の例では、Fine-Tuning a prototype File Created With the pkgproto Commandで作成した 「pkgproto コマンドで作成した prototype ファイルの微調整」 ファイルを使用します。
$ cd /home/jane/InfoFiles $ pkgmk ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system990708093144" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete. $ |
パッケージに再配置可能ファイルが含まれる場合、pkgmk コマンドの -b base-src-dir オプションを使用して、パッケージの作成時に再配置可能なパス名の先頭に追加するパス名を指定します。このオプションは、再配置可能ファイルに対して path1=path2 形式を使用していない場合や、prototype ファイル内で !search コマンドを使用して検索パスを指定していない場合に便利です。
次のコマンドでは、次に示す特性によってパッケージを構築します。
パッケージは、pkgproto コマンドで作成される prototype ファイルのサンプルによって構築されます。詳細については、「例—pkgproto コマンドを使用した prototype ファイルの作成」を参照してください。
パッケージは、path フィールドを変更せずに構築されます。
パッケージは、pkginfo ファイルにエントリを追加します。
$ cd /home/jane/InfoFiles $ pkgmk -o -b /home/jane ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system960716102636" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete. |
この例では、-o オプションを指定して、デフォルトのディレクトリ /var/spool/pkg にパッケージが構築されます。このオプションにより、例 2–2 で作成されたパッケージが上書きされます。
パッケージ情報ファイル (pkginfo および prototype) とパッケージオブジェクトを 2 つの異なるディレクトリに配置する場合、pkgmk コマンドの -b base-src-dir オプションと - r rootpath オプションを使用してパッケージを作成できます。パッケージオブジェクトが /product/pkgbin というディレクトリに含まれ、その他のパッケージ情報ファイルが /product/pkgsrc というディレクトリに含まれる場合、次のコマンドを使用してパッケージを /var/spool/pkg ディレクトリに配置できます。
$ pkgmk -b /product/pkgbin -r /product/pkgsrc -f /product/pkgsrc/prototype |
また、次のコマンドを使用した場合でも、同じ結果が得られます。
$ cd /product/pkgsrc $ pkgmk -o -b /product/pkgbin |
この例では、pkgmk コマンドは現在の作業用ディレクトリを使用してパッケージの残りの部分 (prototype 情報ファイルや pkginfo 情報ファイルなど) を検索します。
省略可能な情報ファイルおよびインストールスクリプトをパッケージに追加するには、第 3 章パッケージの機能の拡張 (作業)を参照してください。追加しない場合、パッケージの構築後にパッケージの整合性を確認するようにしてください。第 4 章パッケージの確認と転送では、パッケージの確認方法について説明し、確認済みのパッケージを配布媒体に転送する方法について順を追って説明します。