14.9 dcmpack.exe(パッケージングの実行)
ユーザデータまたはユーザプログラムのパッケージングを実行するdcmpackコマンドについて説明します。
機能
配布管理システム(JP1/IT Desktop Management 2 - Manager)に、ユーザデータまたはユーザプログラムをパッケージングします。
プログラムプロダクトはパッケージングできません。
形式
dcmpack.exe /k パスワード /i パラメタファイル名 [/o 結果出力ファイル名] [/split /tempdir 一時フォルダ名[/splitfilesize 分割サイズ]]
引数
-
/k
配布管理システムへ、ソフトウェアをパッケージングするためのパスワードを指定します。
配布管理システムのデータベースのパスワードを指定してください。
-
/i
パラメタファイルのフルパスを指定してください。
-
/o
結果出力ファイルのフルパスを指定してください。コマンドが正常終了すると、指定した結果出力ファイルに、作成したパッケージの属性情報が書き込まれます。この結果出力ファイルは、dcminstコマンド、dcmpkgetコマンド、およびdcmpkrmコマンドのパラメタファイルとして使用できます。
省略した場合、結果出力ファイルは作成されません。また、全角文字が含まれるパスを指定することはできません。
-
/split
2ギガバイトを超えるファイルまたはフォルダを分割して配布する場合に、指定してください。
パッケージング対象がフォルダの場合は、パッケージングできるフォルダ全体の最大サイズは127GBです。フォルダ内ファイルの最大サイズは127GBです。
パッケージング対象がファイルの場合は、パッケージングできるファイルの最大サイズは255GBです。
-
/tempdir
2ギガバイトを超えるファイルまたはフォルダを分割して配布する場合に使用する、一時ファイルの出力先フォルダ名を指定してください。
-
/splitfilesize
2ギガバイトを超えるファイルを分割するサイズを、バイト単位で指定します。指定可能な範囲は1,024〜1,073,741,824です。省略時は1,073,741,824(1ギガバイト)です。
パラメタファイルの指定内容とコマンド引数との対応
このコマンドで使用するパラメタファイルの内容は、コマンドの引数で指定することもできます。パラメタファイルの指定内容と、コマンドの引数との対応を次の表に示します。
パラメタファイルの指定内容 |
内容 |
指定の有無 |
コマンドの引数 |
|
---|---|---|---|---|
タグ |
パラメタ |
|||
file_path |
パッケージ対象ファイル名 |
○ |
/P 値 |
|
base_fullpath |
パッケージ基準ディレクトリパス |
◎ |
/B 値 |
|
package_name |
パッケージ名 |
◎ |
/p 値 |
|
package_id |
パッケージ識別ID |
◎ |
/I 値 |
|
version_revision |
バージョン/リビジョン |
◎ |
/v 値 |
|
generation |
世代番号 |
◎ |
/G 値 |
|
cabinet_name |
キャビネット名 |
◎ |
/c 値 |
|
cabinet_id |
キャビネット識別ID |
◎ |
/C 値 |
|
package_code |
コード種別 |
× |
− |
|
directory |
インストール先ディレクトリ |
○ |
/D 値 |
|
condition |
システム条件 |
○※1※2 |
/O 値 |
|
condition |
パッケージ条件 |
○※1※2 |
/l 値 |
|
condition |
ソフトウェア条件 |
○※3 |
− |
|
permission |
ファイルアクセス権の復元 |
○ |
/qYまたは/qN※4 |
|
expiration_date |
中継でのパッケージ保管期限 |
○ |
/x 値 |
|
expiration_days |
中継でのパッケージ保管日数 |
○ |
/ed 値 |
|
installation_date_and_time |
インストール日時 |
○ |
/d 値 |
|
installation_timing |
実行タイミング |
○ |
/tSまたは/tN |
|
installation_mode |
インストールモード |
○ |
/mBまたは/mG |
|
compress |
圧縮の有無 |
○ |
/uYまたは/uN |
|
compress_type |
圧縮方法 |
○ |
/ctNまたは/ctH※5 |
|
restore |
バージョンアップ時のリストア対象の有無 |
○ |
/RYまたは/RN |
|
reboot |
インストール後のコンピュータ再起動 |
○ |
/reboot |
|
processing_dialog |
インストール時の処理中ダイアログの表示 |
○※2 |
/procS、/procY、または/procN |
|
priority |
優先度 |
○ |
/priority 値 |
|
external_program_executed_before_installation※6 |
インストール前起動外部プログラム |
○ |
/b 値 |
|
external_program_executed_after_installation |
インストール後起動外部プログラム |
○ |
/a 値 |
|
external_program_error_handler※7 |
インストールエラー時起動外部プログラム |
○ |
/e 値 |
|
external_program_handler |
起動外部プログラム |
× |
− |
|
exit※7 |
外部プログラム処理結果の通知方式 |
○ |
/rbR、/rbM、/raR、/raM、/reR、または/reM |
|
action※7 |
処理結果エラー時の取り扱い |
○ |
/ybC、/ybS、/yaC、または/yaS |
|
wait※7 |
監視方式 |
○ |
/wbU、/wbT、/wbG、/waU、/waT、/waG、/weU、または/weY |
|
timeout |
監視時間 |
○※8 |
/n 値 |
|
wait_code |
監視コード |
× |
− |
- (凡例)
-
◎:必ず指定する ○:省略できる ×:不要(指定しても無視される)
−:コマンドの引数では指定できない
- 注※1
-
システム条件とパッケージ条件を複数指定すると、システム条件がすべての条件を満たし、かつパッケージ条件が1個以上の条件を満たす場合にインストールされます。コマンドの引数で指定する場合、/Oと/lは、合計10個まで指定できます。
- 注※2
-
UNIXのコンピュータへ配布するパッケージの場合は指定できません。
- 注※3
-
ソフトウェア条件を複数指定すると、どれか1つ以上の条件を満たす場合にインストールされます。
- 注※4
-
UNIXのコンピュータへ配布するパッケージの場合、「/qN」を指定してください。
- 注※5
-
UNIXのコンピュータへ配布するパッケージの場合、「/ctN」を指定してください。
- 注※6
-
UNIXのコンピュータへ配布するパッケージの場合、SCHEDULEタグのinstallation_date_and_timeパラメタと同時に指定すると、このパラメタは無視されます。
- 注※7
-
UNIXのコンピュータへ配布するパッケージの場合、パラメタを指定しても無視されます。
- 注※8
-
waitでUを指定した場合(コマンドの引数で/wbU、/waU、/weUを指定した場合)は、指定しても無視されます。
パラメタファイルを使用しない場合のコマンド形式
パラメタファイルを使用しないで引数だけで指定する場合の、コマンドの形式を次に示します。
dcmpack.exe /k パスワード [/P パッケージ対象ファイル名] /B パッケージ基準ディレクトリパス /p パッケージ名 /I パッケージ識別ID /v バージョン・リビジョン /G 世代番号 /c キャビネット名 /C キャビネット識別ID [/D インストール先ディレクトリ] [/O システム条件] [/l パッケージ条件] [{/qY|/qN}] [/x 中継でのパッケージ保管期限] [/ed 中継でのパッケージ保管日数] [/d インストール日時] [{/tS|/tN}] [{/mB|/mG}] [{/uY|/uN}] [{/ctH|/ctN}] [{/RY|/RN}] [/reboot] [{/procS|/procY|/procN}] [/b インストール前起動外部プログラム [{/rbR|/rbM}] [{/ybC|/ybS}] [{/wbU|/wbT|/wbG}] [/n 監視時間]] [/a インストール後起動外部プログラム [{/raR|/raM}] [{/yaC|/yaS}] [{/waU|/waT|/waG}] [/n 監視時間]] [/e インストールエラー時起動外部プログラム [{/reR|/reM}] [{/weU|/weY}] [/n 監視時間]] [/o 結果出力ファイル名] [/split /tempdir 一時フォルダ名[/splitfilesize 分割サイズ]]
リターンコード
dcmpackコマンド実行時のリターンコードを次の表に示します。
コード |
意味 |
対処 |
---|---|---|
0 |
正常終了した。 |
なし。 |
1 |
パラメタファイルをオープンできない、またはファイル形式が不正。 |
パラメタファイルの指定または記述形式を確認してください。 |
2 |
コマンドの引数またはパラメタファイルに不正な値が指定されている。 |
コマンドの引数またはパラメタファイルの設定値を確認してください。 |
3 |
データベースの接続に失敗した。 |
配布管理システムのセットアップで、データベースの設定を確認してください。 |
4 |
結果出力ファイルを作成できなかった、または予約語を使用したバージョン・リビジョンおよび世代番号の自動カウントアップに失敗した。ただしパッケージの登録には成功した。 |
パッケージングするファイルを指定したパスを確認してください。 |
5 |
JP1/IT Desktop Management 2のサービスの接続に失敗した。 |
JP1/IT Desktop Management 2 - Managerのサービスが開始しているかどうかを確認してください。 |
6 |
配布管理システムとのデータ送受信に失敗した。 |
通信環境を確認してください。 |
7 |
次のどちらかを意味する。
|
|
9 |
パッケージング対象のパッケージはすでにパッケージングされている。 |
次の項目のうち、どれか1つを変更して再度パッケージングしてください。
|
12 |
そのほかのエラーが発生した。 |
イベントログを参照してください。 |
13 |
パスワードに誤りがある。 |
パスワードの指定を確認してください。 |
14 |
バージョン・リビジョンまたは世代番号を自動カウントアップした結果、指定できる最大けた数を超えたため、パッケージの登録に失敗した。 |
バージョン・リビジョンおよび世代番号の予約語の設定を確認してください。 |
32 |
分割ファイルの出力時にエラーが発生した。 |
/tempdir引数で指定したフォルダの有無やアクセス権、空き容量を確認してください。 |
注意事項
-
キャビネットの指定について
-
パラメタファイルまたはコマンドの引数で存在しないキャビネット識別IDを指定した場合、新規にキャビネットが作成されます。
-
キャビネット識別IDとキャビネット名が異なる組み合わせで複数指定された場合は、2つ目以降のパッケージはキャビネット識別IDで指定されたキャビネットに格納されます。エラーにはなりません。
-
-
パッケージの指定数について
パラメタファイルで指定する場合、コマンドの引数で指定する場合ともに、dcmpackコマンド1回の実行につき、1個のパッケージを指定できます。
-
バージョン・リビジョンおよび世代番号の自動カウントアップについて
予約語を使用することで、バージョン・リビジョンおよび世代番号を自動的にカウントアップさせる運用ができます。この場合、パラメタファイルからの指定とコマンドの引数からの指定では、次のように動作が異なります。
- パラメタファイルから指定した場合
-
dcmpackコマンド実行時にカウントアップの初期値が更新され、パラメタファイル上に上書きされます。同じパラメタファイルを使用して再度実行すると、続きの値からカウントアップが開始されます。
- コマンドの引数から指定した場合
-
dcmpackコマンドを実行しても、カウントアップの初期値は更新されません。コマンドを実行するたびに、初期値からカウントアップされます。
-
dcmpackコマンドの接続先について
レジストリのHKEY_LOCAL_MACHINEの更新権限を持つユーザでパッケージャを起動し、接続したサーバが接続先となります。接続先を変更する場合は、レジストリHKEY_LOCAL_MACHINEの更新権限を持つユーザでパッケージャを起動し、接続先を変更したあとで、dcmpackコマンドを実行してください。
-
パラメタファイルを使用しない場合の注意事項
-
外部プログラムには、スペースが含まれるパスを指定しないでください。
-
配布先がWS(UNIXシステム)の場合は、外部プログラムの格納先ディレクトリ、インストール先ディレクトリのドライブには任意のドライブを指定してください。ただし、配布時には、指定されたドライブは無視され、ディレクトリの指定に従って配布されます。次の場合、c:は無視されます。
指定例:c:/user/tmp
なお、ディレクトリの区切りに「\」を使用するときは、ドライブの指定は不要です。
指定例:\user\tmp
-
-
パッケージャを新規インストールした場合の注意事項
パッケージャを新規にインストールした場合、dcmpackコマンドを実行する前にパッケージャを起動してサーバを指定してください。
-
バックグラウンドインストールモードの注意事項
バックグラウンドインストールモードでは、インストール先ディレクトリにネットワークドライブを指定しないでください。
-
/splitを指定した場合の注意事項
-
dcmpackコマンドを実行する前に/tempdir引数に指定するフォルダに、分割前のファイルサイズ以上の空きがあることを確認してください。
-
dcmpackコマンドを実行すると、一時ファイル領域として次のフォルダが作成されます。コマンドの実行中は、このフォルダを削除しないでください。
tempdir引数に指定した一時フォルダ\<プロセスID>※
注※ dcmpackコマンドのプロセスIDです。
一時ファイル領域は、コマンド終了後に自動的に削除されます。
-
ファイルの分割数は最大255個です。分割したファイルをパッケージとして登録するキャビネットを新規に作成することを推奨します。
分割後のファイル数が最大数を超えた場合は、リターンコード「12」のエラーとなります。
なお、パッケージを登録するキャビネットに登録済みのパッケージがある場合、ファイルの最大分割数は登録済みパッケージ数だけ少なくなります。
-
パッケージ名は半角46文字(全角で23文字)以内で指定してください。また、パッケージ識別IDは1〜40文字で指定してください。
-
dcmpackコマンドのリターンコードが「3」〜「14」、または「32」で異常終了した場合、次の手順で一時ファイルおよびパッケージを削除してから、dcmpackコマンドを再実行してください。
一時ファイルの削除:
/tempdir引数に指定したフォルダに残っているファイルを削除します。
パッケージの削除:
パラメタファイルまたはコマンド引数で指定したキャビネットに登録されている、パッケージ名が「コマンドの引数の/p 値、またはパラメタファイルのpackage_nameで指定したパッケージ.連番」であるパッケージを削除します。パッケージの削除については、「7.4.5 キャビネットおよびパッケージの削除」または「14.12 dcmpkrm.exe(パッケージの削除)」を参照してください。
-
登録するパッケージのバージョン・リビジョンおよび世代番号の自動カウントアップはされません。引数に/splitを指定した状態で、コマンドの引数の/v、/Gまたはパラメタファイルのversion_revision、generationに「\増分値[:開始値]」を指定した場合、「:開始値」に指定した値が使用されます。また、「:開始値」を省略した場合は0が使用されます。
-
パッケージ名(パラメタファイルのpackage_nameパラメタまたはコマンドの引数の/p 値)およびパッケージID(パラメタファイルのpackageidパラメタまたはコマンドの引数の/I 値)に「001」から始まる通番を付けたパッケージが複数個登録されます。パラメタファイルまたはコマンドの引数で指定した値のうち、パッケージインストール後に処理されるタイミングを次の表に示します。
パラメタ
対応する引数
処理タイミング
external_program_executed_before_installation
/b
分割したパッケージのうち、一番最初のパッケージインストール後に実行されます。
external_program_executed_after_installation
/a
分割したパッケージのうち、一番最後のパッケージインストール後に実行されます。
external_program_error_handler
/e
分割したすべてのパッケージのインストールでエラーが発生した際に実行されます。
reboot
/reboot
分割したパッケージのうち、一番最後のパッケージインストール後に実行されます。
なお、「7.6.14(2) Windows 10の大型アップデートプログラムを配布する例」のように、配布後にインストールスクリプトをパッケージ・配布する場合は、パラメタファイルのrebootパラメタまたはコマンドの引数の/rebootは指定せず、インストールスクリプト側で再起動するようにしてください。
インストールスクリプト側で再起動する場合は、外部プログラムの監視時間を0(監視しない)にしてください。
-
バージョンアップ時のリストア対象の有無(パラメタファイルのrestoreパラメタまたはコマンドの引数/R)は無効となります。restoreパラメタにYを指定した場合(コマンドの引数で/RYを指定した場合)でも、バージョンアップ時のリストア対象となりません。
-
実行例
C:\Finance\data0401ディレクトリ下にあるファイルを、次のようにパッケージングする例を次に示します。
-
パッケージ名
Finance Data 2003 4
-
保管先のキャビネット名
FCAB01
- パラメタファイルの作成
-
パラメタファイルを次のように作成します。
** dcmpack Parameter File Sample PACKAGING_SOURCE{ file_path=FD200304.dat base_fullpath= C:\Finance\data0401 } PACKAGING_INFORMATION { package_name=Finance Data 2003 4 package_id=FD200304 version_revision=000001 generation=0000 cabinet_name=FCAB01 cabinet_id=F1 package_code=P } SYSTEM_CONDITIONS{ condition=H:c>=300 directory=C:\Finance } USER_PROGRAM_INSTALLATION_CONDITIONS { external_program_executed_after_installation = C:\Dmbat\app\normal_exit.exe }
- コマンドの実行
-
パラメタファイルをC:\Dmbat\para.txtに保存した場合、コマンドは次のように実行してください。
dcmpack.exe /i C:\Dmbat\para.txt