マニュアルページセク ション 1M: システム管理コマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

aimanifest(1M)

名前

aimanifest - AI (Automated Installer) で使用される XML ファイルの変更

形式

/usr/bin/aimanifest [-h]
aimanifest add [-r] path value
aimanifest get [-r] path
aimanifest set [-r] path value
aimanifest load [-i] filename
aimanifest validate

説明

aimanifest コマンドは、新しい XML マニフェストを作成したり、既存のものを変更したりします。aimanifest は、DTD 定義への有効な !DOCTYPE 参照を含む XML ファイルで使用でき、AI (Automated Installer) で使用される派生マニフェストを作成するためのものです。AI 派生マニフェストの情報については、『Oracle Solaris 11 システムのインストール』を参照してください。

aimanifest コマンドは、マニフェストを作成するときに複数回呼び出すことができます。AIM_MANIFEST 環境変数は、aimanifest が変更するマニフェストの場所を指定します。AIM_MANIFEST は設定する必要があります。loadadd、または set サブコマンドを指定して aimanifest コマンドを呼び出すたびに、AIM_MANIFEST ファイルが開き、変更され、保存されます。

    aimanifest コマンドで変更できる AIM_MANIFEST ファイルには、少なくとも次の部分が両方とも含まれている必要があります。

  • 作成中の XML マニフェストで有効な DTD への !DOCTYPE 参照。

  • このマニフェストのルート要素。

AI が派生マニフェストスクリプトを実行する場合のように、空の AIM_MANIFEST ファイルから処理を始める場合は、少なくとも最小限必要な AIM_MANIFEST ファイルを読み込む load サブコマンドを、最初の aimanifest コマンドで指定する必要があります。マニフェストを変更する後続の aimanifest コマンドは、作成中のマニフェスト内のどこに要素を追加すべきかを DTD に基づいて判断します。

エラーメッセージや情報メッセージを、stdoutstderr に表示するだけでなくファイルにも保存するには、AIM_LOGFILE 環境変数をログファイルの場所に設定します。ログファイルの末尾に情報が追加されます。このログファイルはクリアーされません。

オプション

aimanifest コマンドのオプションは次のとおりです。

–h–-help

使用法のヘルプメッセージを表示します。

aimanifest コマンドの addget、および set サブコマンドのオプションは、次のとおりです。

–r–-return-path

この aimanifest コマンドが作成または処理する XML 要素のパスを返します。この返されたパスは、ノード ID のチェーンです。この返されたパス値を保存しておけば、後続の aimanifest 呼び出しで使用できます。AI マニフェストの構築中に値が変更される可能性があるため、–r オプションで返されるパスを使用するほうが XML 要素や属性値を使ってパスを指定するよりも信頼性が高くなります。–r オプションで返されるパスの詳細については、「パスを返す」セクションを参照してください。

aimanifest コマンドの load サブコマンドのオプションは、次のとおりです。

–i–-incremental

新しいデータを追加する前に AIM_MANIFEST のデータをクリアーしません。

サブコマンド

サポートされているサブコマンドは次のとおりです。

aimanifest add [-r | --return-path] path value

XML マニフェストに新しい要素を追加します。値 value を持つ新しい要素を path の位置に追加します。path の詳細については、「オペランド」セクションを参照してください。path が属性 (@attr) で終わっている場合、新しい要素は attr 属性を持ち、value はその属性の値になります。

path 内の親/子関係の検査以外の検証は実行されません。

–r オプションでは、新しく追加されたノードへのパスが返されます。詳細については、「パスを返す」セクションを参照してください。

親パスが AIM_MANIFEST ファイル内の要素に一致する場合、1 要素だけに一致する必要があります。一致する親要素の子として新しい要素が作成されます。このセクションの「例 2: 値を含むパス」で示すように、パスには一意の親要素に一致する要素や属性値を指定できます。

    親パスが AIM_MANIFEST ファイル内の要素に一致しない場合、必要に応じて新しい要素が作成され、その新しい親に新しい子要素が追加されます。追加される要素へのパスは、次の規則に従って既存の要素から分割されます。

  • 分割は、値を指定する、パスのすべての部分のあとで発生します。

  • 分割は、値を指定するパスのすべての部分のあと、関連する同じタグの要素が DTD で複数許可されている最初の位置で発生します。

    この XML マニフェストスキーマを使って後述の各例を分析します。

  • マニフェストは単一の A ノードで始まります。

  • A ノードは B ノードの子を 1 つだけ持つことができます。

  • B ノードは C ノードの子を複数持つことができます。

  • C ノードは D ノードの子を複数持つことができます。

例 1: 単純なパス:AI マニフェストには /A/B/C のように、A ノードが 1 つ、B ノードが 1 つ、C ノードが 1 つ含まれています。add サブコマンドは、path/A/B/C/D として発行されます。この場合、C ノードが同じタグの兄弟を持てるパス内で最初のノードであるため、新しい C ノードが作成されます。新しい D ノードは新しい C ノードの子として追加されます。結果のマニフェストの構造は、/A/B/{C,C/D} となります。同じコマンドを D の値を変えて発行すると、/A/B/{C,C/D,C/D} のように C ノードが 3 個になります。

例 2: 値を含むパス:AI マニフェストに A ノードが 1 つ、B ノードが 1 つ、C ノードが 2 つ含まれています。値 1 を持つ C ノードは 1 つだけであるため、マニフェストの構造は /A/B/{C,C=1} となります。add サブコマンドが、path/A/B/C=1/Dvalue が 10 で発行されます。この場合、C に値 1 を指定することで一意のノードが識別され、値が指定されたブランチの位置やそれより前の位置でパスを分割することはできないため、新しい C ノードは追加されません。このパスを分割できる最初の位置は、D です。値 10 の新しい D ノードが、値 1 の C ノードの子として追加されます。結果のマニフェストの構造は、/A/B/{C,C=1/D=10} となります。D の値を 20 として同じコマンドを発行すると、/A/B/{C,C=1/{D=10,D=20}} となります。

aimanifest get [-r | --return-path] path

要素または属性値を取得します。要素または属性値が空の場合は、空文字列 ("") が表示されます。path は、既存の一意の要素または属性に一致する必要があります。path の詳細については、「オペランド」セクションを参照してください。

–r オプションを指定すると、アクセスしたノードへのパスが、2 つ目の返される文字列として返されます。詳細については、「パスを返す」セクションを参照してください。

aimanifest set [-r | --return-path] path value

既存の要素または属性値を変更するか、既存の要素の新しい属性を作成します。検証は実行されません。

既存の要素の値を変更する場合は、path が既存の一意の要素に一致する必要があります。その要素が同じタグの兄弟を持っている場合、要素の値や属性またはターゲット要素の子要素を使ってパスを一意にします。「path オペランド」セクションを参照してください。

属性の値を設定する場合は、その属性が存在している必要はありませんが、属性が属す要素は存在している必要があります。

–r オプションでは、変更された要素へのパスが返されます。詳細については、「パスを返す」セクションを参照してください。

aimanifest load [-i | --incremental] filename

ファイル filename から XML マニフェストまたは部分的な XML マニフェストを読み込みます。要素の親/子関係の検査以外の検証は実行されません。

–i オプションが指定されなかった場合、既存の XML データをすべて上書きします。AIM_MANIFEST ファイル内のデータはすべて、filename ファイルの内容で置換されます。filename ファイルには、後続の aimanifest コマンドがファイルを変更できるように、DTD への !DOCTYPE 参照が含まれている必要があります。

–i オプションが指定された場合、新しいデータを追加する前に AIM_MANIFEST のデータをクリアーしません。代わりに、新しいデータの挿入または新しいデータと既存の XML データとのマージを増分的に行います。AIM_MANIFEST の !DOCTYPE 参照によって指定される DTD に基づいて、filename のデータをマージする場所と方法が決定されます。!DOCTYPE 参照が見つからない場合は、/usr/share/install/ai.dtd にある AI マニフェスト DTD が使用されます。filename のデータが DTD と矛盾する場合は、ゼロ以外のエラーステータスが返されます。

    次の各考慮点は、AIM_MANIFEST マニフェスト内のどこに新しいデータが挿入されるかに影響を与えます。

  • AIM_MANIFEST のデータパスと filename のデータパスの先頭付近の要素のタグが、どの程度まで一致するか

  • それらの AIM_MANIFEST データ要素の配下ではどの子要素が許可されるか

  • 同じタグの兄弟要素が許可される場所

  • 子を持たない AIM_MANIFEST データノードの配置場所

    filename データの各要素が処理される際には、次の条件がすべて真であれば一般に、AIM_MANIFEST データ内でこの要素に対応する新しいノードは作成されません。代わりに、既存のノードが新しいデータで置き換えられます。

  • 両方のデータセットに、同じタグのノードが同じ位置に含まれている。

  • AIM_MANIFEST の !DOCTYPE 参照で指定される DTD が、これらのノードの両方が同じタグの兄弟要素として一緒に存在することを許可しない。

  • filename データ要素が子を持っている。

filename からの要素を挿入する場合、新しいノードの作成が開始される分割は、AIM_MANIFEST データのルートにできるだけ近い位置で行われます。分割の最初の新しいノードは、同じタグの兄弟要素が許可される位置の中でもっとも早い位置で作成されますが、AIM_MANIFEST 内に同じタグの要素が存在していない場合はもっとも早い適切な位置で作成されます。

    この XML マニフェストスキーマを使って後述の各例を分析します。

  • マニフェストは単一の A ノードで始まります。

  • A ノードは B ノードの子を 1 つだけ持つことができます。

  • B ノードは C ノードの子を複数持つことができます。

  • B ノードは E ノードの子を 1 つだけ持つことができます。

    例 1: 同じタグの要素の挿入:AIM_MANIFEST の内容が /A/B/C1/D1filename の内容が /A/B/C2/D2 である場合に load -i コマンドを実行すると、AIM_MANIFEST ファイルの内容は /A/B/{C1/D1,C2/D2} になります。C ノードが、新しいノードを追加できる最初の位置です。filename データからの C ノードは、AIM_MANIFEST データ内の既存の C ノードのあとに追加されます。2 つの A 要素の値が異なる場合や、2 つの B 要素の値が異なる場合、filename 要素の値で AIM_MANIFEST 要素の値が置き換えられます。2 つの A 要素の属性が異なる場合や 2 つの B 要素の属性が異なる場合は、属性値がマージされます。

  • AIM_MANIFEST ファイルと filename ファイルの両方に存在している A と B の属性は、マージ後のファイルでは filename ファイルからの値を持ちます。

  • AIM_MANIFEST ファイル、filename ファイルのいずれかに存在するが両方のファイルには存在していない A と B の属性は、マージ後のファイルではすべて保持されます。

例 2: 異なるタグの要素の挿入。AIM_MANIFEST の内容が /A/B/C/Dfilename の内容が /A/B/E/F である場合に load -i コマンドを実行すると、AIM_MANIFEST ファイルの内容は /A/B/{E/F,C/D} になります。E ノードは、このノードが DTD によって許可される最初の位置に追加されます。要素 A と B の値は filename からの値となり、A と B の属性は、前述の例 1 で説明したように filename から AIM_MANIFEST にマージされます。

正しいマージ位置を決定できない場合があります。これが起こる可能性があるのは、マージされるノードのあとに続く必要のある兄弟がまだ追加されていない場合です。この問題を避けるには、複数のノードまたはサブツリーを共通の親ノードに DTD で規定された順番で追加します。ノードは、その一連の新しい兄弟の中での適切な位置を決定できない場合には、それらの兄弟の末尾に配置されます。

aimanifest validate

!DOCTYPE 文で参照された DTD に基づいて AIM_MANIFEST マニフェストを検証します。エラーは stderr に表示されます。検証が失敗した場合はゼロ以外のステータスが返されます。

オペランド

次のオペランドは必須です。

filename オペランド

load サブコマンドには、filename オペランド (AIM_MANIFEST マニフェストに読み込む完全または部分的なマニフェストの名前) が必要です。

value オペランド

add および set サブコマンドでは value オペランドが必要です。value オペランドは、path オペランドで指定された要素または属性の有効な値です。

path オペランド

aimanifest コマンドの addget、および set サブコマンドでは path オペランドが必要です。パスは、要素と属性から成る XML 階層内のノードを定義します。

XML 要素の階層構造は XML ツリーとも呼ばれます。次の部分的な AI マニフェストの場合、auto_install 要素がツリーのルート、ai_instance 要素と software 要素がサブツリーのブランチまたはルートです。

<auto_install>
  <ai_instance>
    <software type="IPS"/>
  </ai_instance>
</auto_install>

aimanifest パス構文では、スラッシュ文字 (/) を使ってツリー構造内の各ブランチを示します。現在の例では、software 要素へのパスは /auto_install/ai_instance/software です。

属性は要素にバインドされます。aimanifest パス構文では、アットマーク記号 (@) を使って属性名を識別します。software 要素の type 属性へのパスは、/auto_install/ai_instance/software@type です。

aimanifestpath オペランドは単一の要素に対応している必要があります。要素や属性値を必要に応じて含めることで、パスを一意にします。たとえば、次の部分的な AI マニフェストで定義されている 2 番目のスライスのサイズを指定するために、パス /auto_install/ai_instance/target/disk/slice[@name="4"]/size@val を使ってサイズを指定するスライスを識別できます。

<auto_install>
  <ai_instance>
    <target>
        <disk>
          <slice name="0"/>
          <slice name="4"/>
        </disk>
    </target>
  </ai_instance>
</auto_install>

相対パスは許可されます。前の段落で示した slice のパスは、name 属性値が 4 の slice は 1 つだけであるため、ai_instancetargetdisk、または slice から指定を始めることもできます。たとえば、パス slice[@name="4"]/size@val を使用できます。

path 内のある value にスラッシュ文字が含まれている場合、/name="pkg:/entire" のようにその値を単一引用符か二重引用符で囲む必要があります。

aimanifest がシェルスクリプト内で呼び出される場合には、引用符を含む値にさらに特別な処置が必要になる場合があります。シェルスクリプト内では、aimanifest パス値に含まれる引用符の前にバックスラッシュ文字 (\) を付けて、シェルが引用符を削除したり解釈したりしないようにエスケープが必要になる場合があります。使用するシェルの規則を確認してください。次の例は、ksh93 スクリプトのスラッシュ文字付きの値を示しています。

/usr/bin/aimanifest get software_data[name=\"pkg:/entire\"]@action

このマニュアルページのほとんどの例では、このマニュアルページがスクリプト内や特定のシェル内で aimanifest が呼び出されることを想定していないため、バックスラッシュエスケープ文字が省略されています。AI 派生マニフェストのスクリプトについては、『Oracle Solaris 11 システムのインストール』を参照してください。

次の各形式の分岐は、要素や要素属性へのパスの構築方法を示しています。

/A

A は要素のタグ名です (例、/auto_install)。この分岐指定は単純な分岐とも呼ばれます。単純な分岐のみだけのパスは、単純なパスと呼ばれます。

/A=value

A は要素のタグ名、value はその要素の値です (例: /name="pkg:/entire")。

/A[B/C=value]

A は要素、BA の子である要素、CB の子である要素、valueC 要素の値です。このパス形式は、値が value の孫要素 C を持つ A 要素を指定します。たとえば、AI マニフェストに software セクションが複数含まれている場合には、この形式を使用して、次のパスのようにパッケージ pkg:/entire をインストールする software セクションを処理対象にできます。

software[software_data/name="pkg:/entire"]
/A[@Aattr=value]

A は要素、AattrA の属性、valueAattr 属性の値です。このパス形式は、値 value の属性 Aattr を持つ A 要素を指定します。たとえば、AI マニフェストにスライスが複数定義されている場合には、この形式を使用して、slice[@name="4"] のように name の値が 4 のスライスを処理対象にできます

/A[B/C@Cattr=value]

A は要素、BA 要素の子、CB 要素の子、CattrC の属性、valueCattr 属性の値です。このパス形式は、値 value の属性 Cattr を持つ孫要素 C を持つ A 要素を指定します。たとえば、AI マニフェストに複数のソフトウェアセクションがある場合、この形式を使用すると、パス software[source/publisher@name="solaris"] のように、名前の値が solaris のパブリッシャーセクションを持つソフトウェアセクションに対する操作が可能になります。

/A[1]

/A[1] は、マニフェスト内での A 要素の最初のインスタンスを指定します。たとえば、AI マニフェストに software セクションが複数含まれている場合には、この形式を使用して、/auto_install[1]/ai_instance[1]/software[2] のように 2 番目の software セクションを処理対象にできます。

これが、–r オプションで返されるパスの形式です。「パスを返す」セクションを参照してください。

/A@Aattr

このパスは、A 要素の Aattr 属性を指定します。このパスが指定するのは、A 要素ではなく Aattr 属性です。この形式は、Aattr 属性を設定または取得する場合に使用します。

/A[B/C=value]@Aattr

このパスは、値 value の孫要素 C を持つ A 要素の Aattr 属性を指定します。

/A[B/C@Cattr=value]@Aattr

このパスは、値 value の属性 Cattr を持つ孫要素 C を持つ A 要素の Aattr 属性を指定します。

/A/B=value@Battr

このパスは、値 valueB 要素の Battr 属性を指定します。B 要素は A 要素の子です。

パスを返す

パスを返す

addget、および set サブコマンドで –r オプションを使用すると、サブコマンドによって作成またはアクセスされた要素のアドレスが返されます。この返されるアドレスの形式は、ノード ID のチェーンです。この返されたアドレスを使用すれば、その要素に関連付けられた値が変更されていても、同じ要素に再びアクセスできます。

後述の例から、–r オプションで返されるアドレスのほうが、要素や属性値を指定するパスよりもずっと使いやすいことがわかります。次のノードツリーから始めます。

        auto_install
             |
        ai_instance
             |
           target
             |
           disk
         attribute: whole_disk=true
             |
         disk_name
         attribute: name=data1
         attribute: name_type=volid

name 属性値が data2name_type 属性値が volid の新しい disk ノードを追加します:

        auto_install
             |
        ai_instance
             |
           target
             |
  |----------|----------|
disk                  disk
whole_disk=true       whole_disk=true
    |                     |
disk_name             disk_name
name=data1            name=data2
name_type=volid       name_type=volid

属性が 1 つ新しい disk_name 要素は、単一のコマンドを使って容易に追加できます。2 番目や 3 番目の属性を追加するには、変更する disk_name 要素を指定する必要があります。同じノードに複数回アクセスするための次の 2 つの方法を比較してください。

値を使用したパスの指定

この例のコマンドでは、値を使ってパスを指定しています。最初のコマンドで一意の値を代入することにより、後続のコマンドでその値を使って一意のパスを指定できるようにする必要があります。この方法では、値が変更されると間違った結果が生成される可能性があります。

$ aimanifest add target/disk/disk_name@name data2
$ aimanifest set \
> target/disk/disk_name[@name=data2]@name_type volid
$ aimanifest set \
> target/disk[disk_name@name=data2]@whole_disk true

返されたパスを使用したパスの指定

同じノードに複数回アクセスするためのもっとも信頼性の高い方法は、新しい disk_name 要素へのパスを保存したあと、その保存したパスを後続のアクセスで使用することです。

$ NewDisk=$(aimanifest add -r target/disk@whole_disk true)
$ aimanifest add ${NewDisk}/disk_name@name data2
$ aimanifest add ${NewDisk}/disk_name@name_type volid

–r オプション経由で $NewDisk に返されるパスは、ID を使ってノードを表現しており、値は使用していません。

$ aimanifest add -r target/disk/@whole_disk true
/auto_install[1]/ai_instance[1]/target[1]/disk[2]

次の例を試すには、AIM_MANIFEST を設定する必要があります。

$ export AIM_MANIFEST=/tmp/aimtest.xml

    aimanifest コマンドで変更できる AIM_MANIFEST ファイルには、少なくとも次の部分が両方とも含まれている必要があります。

  • 作成中の XML マニフェストで有効な DTD への !DOCTYPE 参照。

  • このマニフェストのルート要素。

次の例は、AI マニフェストの最小 AIM_MANIFEST マニフェストファイルを示しています。

<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
<auto_install/>

通常、既存の有効な AI マニフェストを処理対象とする派生マニフェストスクリプト内で aimanifest コマンドを使用します。これらの例を試すには、/usr/share/auto_install/manifest/default.xml をコピーしたあと、このコピーを参照する AIM_MANIFEST を定義します。このコピーが書き込み可能になっていることを確認してください。

使用例 1 auto_reboot 属性の設定
$ aimanifest set /auto_install/ai_instance@auto_reboot false
使用例 2 auto_reboot 値の取得
$ aimanifest get /auto_install/ai_instance@auto_reboot
false
使用例 3 値パスを使用したパブリッシャーの追加

この例のパッケージリポジトリは、file:///net/host2/export/extras_repo にあるファイルリポジトリです。パブリッシャーは extras です。software 要素は source 要素を 1 つだけ持つことができるため、この例では新しい publisher 要素を発行元の solaris を含む source 要素に追加します。

$ aimanifest add \
> software[@type=IPS]/source[publisher@name=solaris]/publisher@name \

extras
$ aimanifest add \
> publisher[@name=extras]/origin@name \
> file:///net/host2/export/extras_repo

default.xml AI マニフェストから開始した場合、これらの aimanifest コマンドから次の AI マニフェストエントリが得られます。簡潔にするために、destination および software_data 要素は省略されています。

<software type="IPS">
  <source>
    <publisher name="solaris">
      <origin name="http://pkg.oracle.com/solaris/release"/>
    </publisher>
    <publisher name="extras">
      <origin name="file:///net/host2/export/extras_repo"/>
    </publisher>
  </source>
</software>
使用例 4 返されたパスを使用したパブリッシャーの追加

この例は前の例と同じですが、異なる方法を使って同じ結果を実現しています。

$ NEW_PUB=$(aimanifest add -r \
> software[@type=IPS]/source[publisher@name=solaris]/publisher@name \

extras)
$ echo $NEW_PUB
/auto_install[1]/ai_instance[1]/software[1]/source[1]/publisher[2]
$ aimanifest add ${NEW_PUB}/origin@name \
file:///net/host2/export/extras_repo
使用例 5 マニフェストフラグメントを追加することによるパブリッシャーの追加

この例では、部分的な AI マニフェストを含むファイルをロードすることで、発行元 extras を追加します。この場合、結果は、発行元 extras が定義された IPS タイプの別個の追加 software 要素になります。この新しい software 要素は、発行元 solaris を定義する元の IPS software 要素のあとに挿入されます。この新しい software 要素内部の software_data 要素で命名されたパッケージは、発行元の extras またはこの新しい software 要素で定義されたほかの発行元からのみ検索されます。インストールするソフトウェアのない software 要素は役に立たないため、このマニフェストフラグメントはインストールするパッケージも定義します。

次の内容を持つ extras.xml という名前のファイルを作成します。

<auto_install>
  <ai_instance>
    <software type="IPS">
      <source>
        <publisher name="extras">
          <origin name="file:///net/host2/export/extras_repo"/>
        </publisher>
      </source>
      <software_data action="install">
        <name>pkg:/package/from/extras_repo</name>
      </software_data> 
    </software>
  </ai_instance>
</auto_install>

software セクションだけが必要な場合でも、auto_install 要素と ai_instance 要素も含める必要があります。読み込むファイル内で auto_install または ai_instance 要素の属性が指定されていた場合、それらの属性値が既存の値を置き換えるか追加されます。

この software セクションを AIM_MANIFEST マニフェストに追加するには、次のコマンドを使用します。

$ aimanifest load -i extras.xml
使用例 6 値パスを使用したパッケージの追加

この例では、発行元の名前をパス内の値として指定することにより、名前が solarispublisher 要素を持つ software 要素にパッケージを追加します。

$ aimanifest add \
> software[source/publisher@name=solaris]/software_data/name \
> pkg:/system/utils

default.xml AI マニフェストから開始した場合、この aimanifest コマンドは次に示す 2 番目の software_data 要素を追加します。

<software_data action="install">
  <name>pkg:/entire@latest</name>
  <name>pkg:/group/system/solaris-large-server</name>
</software_data>
<software_data>
  <name>pkg:/system/utils</name>
</software_data>
使用例 7 返されたパスを使用したパッケージの追加

この例は前の例と同じですが、異なる方法を使って同じ結果を実現しています。この例では、get サブコマンドを返されたパスオプションとともに使用して、発行元の solaris が定義されている software 要素にパッケージを追加します。

$ NEW_PKG=$(aimanifest get -r \
software[source/publisher@name=solaris] | awk '{print $2 }')
$ echo $NEW_PKG
/auto_install[1]/ai_instance[1]/software[1]
$ aimanifest add ${NEW_PKG}/software_data/name \
pkg:/system/utils
使用例 8 マニフェストフラグメントの追加によるパッケージの追加

この例では、部分的な AI マニフェストを含むファイルをロードすることで、パッケージを追加します。この場合、結果は IPS タイプの別個の追加 software 要素になり、元の IPS software 要素のあとに挿入されます。この新しい software 要素には、software_data 要素のみが含まれ、source 要素は指定されません。この新しい software 要素内部の software_data 要素で命名されたパッケージは、直前の software 要素内で定義された発行元から検索されます。

次の内容を持つ newpkg.xml という名前のファイルを作成します:

<auto_install>
  <ai_instance>
    <software type="IPS">
      <software_data>
        <name>pkg:/system/utils</name>
      </software_data>
    </software>
  </ai_instance>
</auto_install>

software セクションだけが必要な場合でも、auto_install 要素と ai_instance 要素も含める必要があります。読み込むファイル内で auto_install または ai_instance 要素の属性が指定されていた場合、それらの属性値が既存の値を置き換えるか追加されます。

この software セクションを AIM_MANIFEST マニフェストに追加するには、次のコマンドを使用します。

$ aimanifest load -i newpkg.xml
使用例 9 マニフェストの検証

AIM_MANIFEST マニフェストを検証します。

$ aimanifest validate

終了ステータス

次の終了ステータスが返されます。

0

コマンドが正常に処理されました。

>0

エラーが発生した。

ファイル

AIM_MANIFEST

この環境変数の値は、構築される AI マニフェストの場所です。

AIM_LOGFILE

この環境変数の値は、aimanifest 処理のログファイルの場所です。

属性

次の属性については、attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/install/auto-install/auto-install-common
インタフェースの安定性
不確実

関連項目

installadm(1M)

Oracle Solaris 11.2 システムのインストール のパート IIIインストールサーバーを使用したインストール