日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
PATCH |
Alpha システムと Integrity システムでは,特に指定しなければ,絶対仮想アドレスでファイルにパッチを行う PATCH/ABSOLUTE を起動します。
詳細は,パッチ・ユーティリティ内のオンライン・ヘルプを参照してください。
PATCH ファイル指定
ファイル指定
パッチを行うイメージ・ファイル,あるいは PATCH コマンドとパッチを行うイメージ・ファイル名を含むコマンド・プロシージャを指定します。ファイル指定にイメージ・ファイルを指定する場合は,ファイル指定にはファイル名が含まれていなければなりません。ファイル名以外のフィールド ( デバイス,ディレクトリ,ファイル・タイプ,バージョン番号 ) を省略した場合, PATCH コマンドは省略時の設定のデバイスおよびディレクトリを使用し,ファイル・タイプは EXE であることを想定し,イメージ・ファイルの最上位バージョンを使用します。
ファイル指定にコマンド・プロシージャを指定する場合は,ファイル指定パレメータの前にアットマーク (@) を付けなければなりません。ファイル名だけが必要とされます。ファイル名以外のフィールド (デバイス,ディレクトリ,ファイル・タイプ,バージョン番号 ) を省略した場合, PATCH コマンドは省略時の設定のデバイスおよびディレクトリを使用し,ファイル・タイプは COM であることを想定し,コマンド・プロシージャの最上位バージョンを使用します。
アスタリスク (*) およびパーセント記号 (%) などのワイルドカード文字をファイル指定に使用することはできません。
/ABSOLUTE
絶対仮想アドレスでファイルにパッチを行います。これは,Alpha システムと Integrity システムでの省略時の指定です。 /ABSOLUTE 機能により,イメージ・ファイルだけでなく任意のファイルに対してそのファイルの先頭からの絶対仮想アドレスでパッチを行うことができます。この機能により,既存のデータを同一長の新しいデータと交換することができます。新しいデータ長が元のデータ長よりも短い場合は,PATCH コマンドは使用中のモードに対応した適切なフィル文字を使用します。たとえば,現在のモードが命令モードである場合は,フィル文字として NOP が使用されます。データ・モード (数値あるいは ASCII) である場合は, フィル文字として NULL が使用されます。PATCH 処理が元のデータ長よりも長いデータ交換を引き起こす場合は,エラー・メッセージを表示してコマンドの実行を停止します。続いて,PATCH あるいは DCL のいずれか適切なプロンプトが表示されます。また,ファイルを破壊する可能性があるため,省略時のパッチ領域はなく,何も作成されることはないことに注意してください。パッチ領域は,イメージ・ファイル以外では意味がありません。
絶対モードでファイルに対してパッチを行う場合は,データ位置を確定するためにシンボルを利用することができないということを銘記しておいてください。細心の注意を払って,正しい位置を修正していることを確認しなければなりません。
ほとんどの PATCH コマンドは通常のとおり動作します。ただし,書き込み操作には REPLACE および DEPOSIT だけを使用しなければなりません。その他のコマンドは読み込み操作に使用することができます。ファイルを破壊する可能性があるため,ALIGN および INSERT などのファイルを拡張するコマンドを使用することは避けなければなりません (これらのコマンドは PATCH コマンドで検出され,交換データが元のデータ長を超えてはならないことを示すエラー・メッセージが表示されます )。
ファイル属性は元の入力ファイルから出力ファイルに引き継がれます。これには,ALQ,TYPE,MRS,RAT,RFM,RAC が含まれます。
/JOURNAL[=ファイル指定]
代替ジャーナル・ファイル指定を指定します。省略時の設定では, PATCH コマンドは現在の省略時の設定から構成されるファイル指定を持つジャーナル・ファイルを作成します。代替ファイル指定を指定する場合は,/JOURNAL 修飾子を使用します。ファイル指定のフィールドを省略した場合, PATCH コマンドは次の省略時の値を適用します。
ファイル指定フィールド 省略時の値 デバイスおよびディレクトリ 現在のプロセスの省略時の設定 ファイル名 入力イメージ・ファイル名 ファイル・タイプ JNL バージョン 1
以降の PATCH セッションでは,このファイルの新しいバージョンが作成されるのではなく,このジャーナル・ファイルに情報が追加されます。
アスタリスク (*) およびパーセント記号 (%) などのワイルドカード文字をファイル指定に使用することはできません。
/NEW_VERSION (省略時の設定)
/NONEW_VERSION
パッチの入ったファイルの新しいバージョンを作成するか,既存のファイルの内容を修正するだけにするかを制御します。 /NEW_VERSION 修飾子を /ABSOLUTE 修飾子とともに使用することで,パッチの入ったファイルの新しいバージョンを作成するか,既存のファイルの内容を修正するだけにするかを制御することができます。 /NEW_VERSIONが省略時の設定です。/NONEW_VERSION を選択した場合, PATCH コマンドの UPDATE はチェックポイント操作として動作します。すなわち,そのファイルに対するすべての修正は,イメージが終了するまで待つことなく,そのファイルに書き込まれます。 /NONEW_VERSION とともに /ABSOLUTE が指定されない場合, /NONEW_VERSION は無視されます。すなわち,ファイルの新しいバージョンが作成されます。パッチの入ったファイルの新しいバージョンを作成するだけの十分なディスク容量がない場合に大きなデータ・ファイルにパッチを行う際は, /NONEW_VERSION を指定する必要があります。
注意
/NEW_VERSION が指定されると,そのファイルは上書きされます。 Ctrl/Y を押すことを含み,ユーザ側で何をしても,上書きすることを防ぐことはできません。したがって,ファイルにパッチを行う場合は,そのファイルのバックアップ・コピーを作成しておかなければなりません。PATCH コマンドはイメージの終了時に常に情報メッセージを表示して,ファイルが上書きされたことを通知します。
/OUTPUT[=ファイル指定]
出力イメージ・ファイル指定を指定します。省略時の設定では,PATCH コマンドは現在の省略時の設定から構成されるファイル指定を持つ出力ファイルを作成します。代替ファイル指定を指定する場合は,/OUTPUT 修飾子を使用します。ファイル指定のフィールドを省略した場合, PATCH コマンドは次の省略時の値を適用します。
フィールド 省略時の値 デバイスおよびディレクトリ 現在のプロセスの省略時の設定 ファイル名 入力イメージ・ファイル名 ファイル・タイプ .EXE バージョン 入力イメージ・ファイルの最新のコピーよりも 1 つだけ大きい
PATCH セッションの最後で PATCH コマンドの UPDATE を実行した場合にかぎり,出力イメージ・ファイルが作成されます。単一セッション内で,複数の UPDATE コマンドを実行することができます。最初の UPDATE コマンドが出力イメージ・ファイルを作成し,以降の UPDATE コマンドはこのファイルに上書きします。
アスタリスク (*) およびパーセント記号 (%) などのワイルドカード文字をファイル指定に使用することはできません。
/VOLUME[=n]
出力ファイルを,マルチボリューム・セットの指定した相対ボリューム番号に置くように要求します。番号を付けないで /VOLUME を指定した場合,入力イメージ・ファイルの相対ボリューム番号が省略時の設定値となります。/VOLUME 修飾子を指定しない場合,出力ファイルはマルチボリューム・セット内の任意の位置に置かれます。
#1 |
---|
$ PATCH/ABSOLUTE IMAGE.EXE PATCH>EX/INS 604 00000604: BBSS #07,R1,00000608 PATCH>REPLACE/INS 604='BBSS #07,R1,0608' NEW> 'BBSS #07,R1,0608' NEW> 'CLRL R0' NEW> EXIT old: 00000604: BBSS #07,R1,00000608 %PATCH-E-DATTOOLNG, length of new data may not exceed length of old data PATCH>EX/INS 684 00000684: MOVB #01,(R5)+ PATCH>REPLACE/INS 684='MOVB #01,(R5)+' NEW> 'MOVB #02,(R5)+' NEW> EXIT old: 00000684: MOVB #01,(R5)+ new: 00000684: MOVB #02,(R5)+ PATCH>EX/INS 687 00000687: MOVB #00,(R5)+ PATCH>DEPOSIT/INS 687 NEW> 'CLRB (R5)+' NEW> EXIT old: 00000687: MOVB #00,(R5)+ new: 00000687: CLRB (R5)+ PATCH>INSERT/INS 68D OLD> 'MOVB #10,(R5)+' NEW> 'MOVB #20,(R5)+' NEW> EXIT old: 0000068D: MOVB #10,(R5)+ %PATCH-E-DATTOOLNG, length of new data may not exceed length of old data PATCH>UPDATE %PATCH-I-WRTFIL, updating image file DISK$STARWORK01:[NASR.PATCH]IMAGE.EXE;2 PATCH>EXIT |
省略時の設定としての /NEW_VERSION とともに /ABSOLUTE 修飾子を指定する例です。コマンドがファイルを拡張しようとした場合はエラー・メッセージが返されることに注意してください。
#2 |
---|
$ PATCH/ABSOLUTE/NONEW_VERSION LOGIN.COM PATCH>EX/ASCII 57 00000057: 'MANA' PATCH>REPLACE/ASCII 57='MANA' NEW> 'mana' NEW> 'test' NEW> exit old: 00000057: 'MANA' %PATCH-E-REPLACEERR, replacement value too large for location PATCH>replace/ascii 57='MANA' NEW> 'mana' NEW> exit old: 00000057: 'MANA' new: 00000057: 'mana' PATCH>EX/ASCII 24 00000024: 'F$MO' PATCH>INSERT/ASCII 24='F$MO' NEW> 'test' NEW> exit %PATCH-E-INVCMD, invalid command PATCH>UPDATE %PATCH-I-OVERLAY, DISK$STARWORK01:[NASR.PATCH]LOGIN.COM;1 being overwritten PATCH>EX 68:75 00000068: 4349544F 0000006C: 58542E45 00000070: 00010054 00000074: 00100024 PATCH>REPLACE 68 OLD> 4349544F OLD> 58542E45 OLD> 00010054 OLD> EXIT NEW> 6369746F NEW> 68642E65 NEW> 00010074 NEW> EXIT old: 00000068: 4349544F old: 0000006C: 58542E45 old: 00000070: 00010054 new: 00000068: 6369746F new: 0000006C: 68642E65 new: 00000070: 00010074 PATCH>EX/ASCII 68 00000068: 'otic' PATCH>UPDATE %PATCH-I-OVERLAY, DISK$STARWORK01:[NASR.PATCH]LOGIN.COM;1 being overwritten PATCH>EXIT %PATCH-I-OVERLAY, DISK$STARWORK01:[NASR.PATCH]LOGIN.COM;1 being overwritten $ |
PATCH/ABSOLUTE/NONEW_VERSION コマンドの例です。コマンドがファイルを拡張しようとした場合,あるいはコマンドのUPDATE あるいは EXIT が実行される場合,すなわちファイルが上書きされている場合に返されるエラー・メッセージに注意してください。
#3 |
---|
$ PATCH AVERAGE /JOURNAL=TEST /OUTPUT=TEST |
これは,イメージ・ファイル AVERAGE.EXE を使用して会話型の PATCH セッションを起動する例です。このセッションで作成されるジャーナル・ファイルおよび出力イメージ・ファイルともに TEST という名前であり,省略時の設定のデバイスおよびディレクトリに置かれます。ジャーナル・ファイルのファイル・タイプは JNL であり,出力イメージ・ファイルのファイル・タイプは .EXE です。
#4 |
---|
$ PATCH /UPDATE=(100,102) @ORION $ |
これは,コマンド・プロシージャ ORION.COM を実行する PATCH コマンドの例です。 /UPDATE 修飾子は,ORION.COM に含まれる ECO レベル 100 および 102 で指定されたパッチだけを処理することを要求します。ORION.COM の最初のレコードは入力イメージ・ファイルを指定していなくてはなりません。 2 行目の DCL プロンプト ($) は,パッチが正しく適用されたことを示します。
目次 | 索引 |
|