日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V8.3
ライブラリ

タイトルページ
目次
まえがき
第 1 章:リファレンス・セクション
付録 A:廃止されたコマンド
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム

HP OpenVMS
DCL ディクショナリ


目次 索引




VAX システムでは,実行イメージ,共有イメージ,デバイス・ドライバ・イメージにパッチを行う Patch ユーティリティを起動します。

Alpha システムと I64 システムでは,特に指定しなければ,絶対仮想アドレスでファイルにパッチを行う PATCH/ABSOLUTE を起動します。

詳細は,パッチ・ユーティリティ内のオンライン・ヘルプを参照してください。


形式

PATCH ファイル指定


パラメータ



ファイル指定

パッチを行うイメージ・ファイル,あるいは PATCH コマンドとパッチを行うイメージ・ファイル名を含むコマンド・プロシージャを指定します。

ファイル指定にイメージ・ファイルを指定する場合は,ファイル指定にはファイル名が含まれていなければなりません。ファイル名以外のフィールド ( デバイス,ディレクトリ,ファイル・タイプ,バージョン番号 ) を省略した場合, PATCH コマンドは省略時の設定のデバイスおよびディレクトリを使用し,ファイル・タイプは EXE であることを想定し,イメージ・ファイルの最上位バージョンを使用します。

ファイル指定にコマンド・プロシージャを指定する場合は,ファイル指定パレメータの前にアットマーク (@) を付けなければなりません。ファイル名だけが必要とされます。ファイル名以外のフィールド (デバイス,ディレクトリ,ファイル・タイプ,バージョン番号 ) を省略した場合, PATCH コマンドは省略時の設定のデバイスおよびディレクトリを使用し,ファイル・タイプは COM であることを想定し,コマンド・プロシージャの最上位バージョンを使用します。

アスタリスク (*) およびパーセント記号 (%) などのワイルドカード文字をファイル指定に使用することはできません。


修飾子



/ABSOLUTE

絶対仮想アドレスでファイルにパッチを行います。これは,Alpha システムと I64 システムでの省略時の指定です。 /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 コマンドはこのファイルに上書きします。

アスタリスク (*) およびパーセント記号 (%) などのワイルドカード文字をファイル指定に使用することはできません。

/UPDATE[=(ECO レベル[,...])] (VAX のみ)

指定した ECO レベルに対応したパッチだけを処理するように要求します。複数の ECO レベルを指定する場合は,各 ECO レベルをコンマで区切り,リストを括弧で囲む必要があります。

/UPDATE 修飾子を指定した場合,PATCH コマンドのファイル指定には,処理するパッチを含むコマンド・プロシージャ,あるいは特定のパッチが適用されるイメージ・ファイルを指定します。ファイル指定にコマンド・プロシージャを指定した場合は, /UPDATE 修飾子はコマンド行内のファイル指定よりも前に指定しなければなりません。ファイル指定にイメージ・ファイルを指定した場合は, /UPDATE 修飾子はファイル指定の前に指定することもできますし,その後に指定することもできます。いずれの場合でも,ファイル指定は必要です。

PATCH コマンドが,コマンド・プロシージャ内で /UPDATE 修飾子で指定した ECO レベルに一致しないものを検出した場合, PATCH コマンドはそれ以降のパッチを無視しますがメッセージを表示します。オプションの ECO レベルを省略した場合, PATCH コマンドは提供されているすべてのパッチを処理します。

/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 プロンプト ($) は,パッチが正しく適用されたことを示します。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項