統合インストール・パッケージ (IIP) の非常に重要な機能は、マクロを使用して、 組み込みインストール・パッケージのインストールを自動化できる機能です。
このトピックでは、IIP マクロについて以下の項目を説明します。
事前定義済みのマクロを使用して IIP を、より柔軟なものにし、IIP の作成中にビルド定義ウィザードですべてを指定しなくとも、特定のコントリビューションのインストール方法を自動化することができます。例えば、2 つの異なるインストール・パッケージを同じ場所 (または同じ場所を基準とした場所) にインストールする場合は、そのロケーションを IIP ビルド定義ウィザードで手動で 2 回指定する必要はありません。 最初のパッケージのインストール・ロケーションは、自動的に 2 番目のパッケージの -installLocation オプションに割り当てられるため、そのロケーションがデフォルトとなります。ユーザーが IIP 作成中に許可していれば、インストール中にこの値を変更できることに、注意してください。マクロは、IIP のインストール時まで解決されないため、IIP を作成するユーザーが使用できるだけでなく、マクロを呼び出すユーザーも使用できます。マクロ の作成や変更を直接行うためにオプション・ストリングを手動で編集する必要なく、 ユーザーがマクロを利用できる便利な手段が、ビルド定義ウィザードおよび IIP インストール・ウィザードの両方に用意されています。
IIP では以下のマクロを使用することができます。
これは、指定した呼び出しの結果値 を取得し、この値でマクロを置き換えます。 ここで、<Invocation_ID> は、IIP のどのコントリビューション呼び出しで、名前を指定した結果値を提供するのかを指定します。 異なるコントリビューションで同じ結果値名を使用している場合や、 指定されたコントリビューションの呼び出しが複数ある場合に発生し得るあいまいさ を解決するため、この呼び出し ID が必要になります。例えば、IIP にアプリケーション・サーバーのインストール・パッケージ (Invocation_ID = 6.1.0-WS-WASBase_1-1) および Feature Pack for Web Services のインストール・パッケージが含まれている場合、 フィーチャー・パックをアプリケーション・サーバーと同じ場所に自動的にインストールしたい場合があります。 これは、以下のオプションを、IIP インストール・コマンド行のフィーチャー・パックのインストール・プログラムに渡すことで実現します。
-OPT installLocation=$RESV{6.1.0-WS-WASBase_1-1:installLocation}
これは、指定した名前のオプションの値を取得し、この値でマクロを置き換えます。 ここで、<Invocation_ID> は、IIP のどのコントリビューション呼び出しが指定したオプションをサポートするのかを指定します。これは、異なるコントリビューションで同じ結果値名を使用している場合や、指定されたコントリビューションの呼び出しが複数ある場合に発生し得るあいまいさの解決のために必要になります。IIP のインストール中、参照されるオプションが、参照された呼び出しで実際には指定されていないために解決されない場合、エラーになります。IIP ユーザーは、そのオプションを組み込むように、参照される呼び出しを変更するか、 または参照のあるマクロを変更/除去するかのいずれかを実行する必要があります。IIP の作成中に、このマクロを使用して値 (例えば、–silent など) を取らないオプションを参照すると、エラーになります。この場合、ビルド定義ウィザードはエラーを発行し、IIP をビルドすることはできません。
このサンプルは、1 つの重要な点を除き $RESV のサンプルと非常によく似ています。
-OPT installLocation=$OPTV{6.1.0-WS-WASBase_1-1:installLocation}
これは、-installLocation オプションでアプリケーション・サーバーに受け渡されたどのようなインストール・ロケーションでも取り、 それをそのインストール・ロケーションのフィーチャー・パックに受け渡します。このことは、 アプリケーション・サーバーがサイレント・インストールされたが、GUI モードでインストールされた場合、ユーザーがインストール・ウィザードで ロケーションを他のロケーションに変更した可能性がある場合に、有用です。このマクロは依然、 IIP の作成時にも元の値セットに解決されます。このケースでは、オプション値マクロ ($OPTV) ではなく、結果値マクロ ($RESV) を使用することをお勧めします。
これは、指定した名前をもつオプションの仕様を取得し、その仕様でマクロを置き換えるか、string が提供されていればそれで置き換えます。<Invocation_ID> は IIP のどのコントリビューション呼び出しが指定したオプションをサポートするのかを指定します。オプション仕様はオプションがコマンド行でどのように指定されるか (例えば -OPT installLocation= のようなすべての値は除く) を正確に表すストリングです。 このマクロはほとんどの場合、–silent のような値を取らないオプションに使用されます。 マクロの string 部分では、参照されるオプション仕様を直接使用する代わりに、このマクロの置き換えとしてストリング値を使用することができます。これは、2 つの異なるコントリビューションが同じ関数に対して別々のオプションを持つ可能性がある場合をサポートし、この場合では、サイレント・インストールにあたります。 コントリビューションの 1 つには、他のコントリビューションがサイレント呼び出しされた場合に確認のためにマクロを使用することができます。 そのような場合、サイレント呼び出しには string を使用して、独自のオプションを指定することができます。
$OPTV マクロとは異なり、$OPTS は、参照されるオプションが参照される呼び出しで指定されなかった場合、 空ストリングに展開されますが、これはエラーではありません。これは、-silent のようなオプションが、インストーラーが GUI モードを使用することを意味するインストール・モードなどをサポートするのに重要です。 仕様を持たないオプションの参照にこのマクロを使用すると、エラーが発生します。
–silent などの値を取らないオプションは、マクロを使用して解決することができます。以下にその例を示します。
$OPTS{6.1.0-WS-WASBase_1-1:silent}
この場合、参照されるオプション –silent が、アプリケーション・サーバーのコントリビューション 6.1.0-WS-WASBase の呼び出しで指定されている場合、マクロはオプション仕様 -silent で置き換えられます。 このオプションが指定されなかった場合、マクロは空ストリングに解決されます。 これにより、これらのコントリビューションのいずれかに指定されたものに基づいて、一連のコントリビューションを一貫してサイレント・モード、または GUI モードでインストールすることができます。 参照されるコントリビューションでオプションが指定されなかった場合、警告が発行されますが、この場合、 この参照はユーザー・エラーになります。
このマクロは IIP で指定されたパッケージ呼び出しのロケーションに解決され、その結果は絶対パスになります。Contribution_ID および Sub_ID が指定された場合、IIP で指定されたコントリビューションのルート・ロケーションに解決されます。例えば、Windows アプリケーション・サーバー製品の基本版のコントリビューションをお持ちの場合、そのコントリビューションのルート・ディレクトリーは IIP_home/contrib/6.1.0-WS-WASBase/1/WinX32 になります。 以下のマクロの例は、このディレクトリーに解決されます。
$LOC{6.1.0-WS-WASBase_1}
IIP のみが指定される場合、この値はルート・ディレクトリー、または IIP の IIP_home に解決されます。
$LOC{IIP}
このマクロは指定された Java プロパティーの現行値で置き換えられます。 これは現在 Java ランタイムで知られているプロパティーのいずれかである場合があります。例えば、IIP ビルド定義ウィザードを実行中、コントリビューション呼び出しのターゲット・インストール・ディレクトリーを指定するよう指示されます。 デフォルトで、root ユーザー以外のターゲット・インストール・ディレクトリーは以下のようになります。
$JP{user.home}/IBM/WebSphere/AppServer
これは、 /IBM/WebSphere/AppServer を現在のユーザーのホーム・ディレクトリーに付加してディレクトリー・パスにしたものです。