概要

スタックファイルとは、個々のプロダクト(ソフトウェア)を
ひとまとめにインストールするために必要な定義のことです。

定義ファイルの全体像

<?xml version="1.0" encoding="Shift_JIS"?>
<stack>
	<application>
		<name>OpenStandia</name>
		<ver>3.0.0.0</ver>
		<description>OSS一括インストール</description>
		<logo>nri_openstandia.gif</logo>
		<properties>
			<before-dir>before</before-dir>
			<products-dir>products</products-dir>
			<demo-dir>demo</demo-dir>
		</properties>
	</application>
	<license>
		<file>license.txt</file>
	</license>
	<install-befores>
		<install-before def="${stack.application.properties.before-dir}/win.xml"/>
		<install-before def="${stack.application.properties.before-dir}/linux.xml"/>
	</install-befores>
	<products>
		<product no="1" name="Apahce 2.2.6" def="${stack.application.properties.products-dir}/apache/httpd-2.2.6/win.xml"/>
		<product no="2" name="Apahce 2.2.6" def="${stack.application.properties.products-dir}/apache/httpd-2.2.6/linux.xml"/>
			:
		<product no="6" name="mod_jk 1.2.25" def="${stack.application.properties.products-dir}/mod_jk/mod_jk-1.2.25/linux-2.2.xml">
			<depends>
				<depend no="2"/>
			</depends>
		</product>
			:
	</products>
	<install-afters>
		<install-after def="${stack.application.properties.demo-dir}/win.xml"/>
		<install-after def="${stack.application.properties.demo-dir}/linux.xml"/>
	</install-afters>
</stack>

各要素の説明

stack

説明
スタックを定義します。
属性
なし
ネストできる要素
application、license、install-befores、products、install-afters

スタック定義ファイルとしての最小限構成です(が何もできません)。
<stack>
  <application/>
  <license/>
  <install-befores/>
  <products/>
  <install-afters/>
</stack>

application

説明
このスタックの概要や、初期設定などを定義します。
属性
なし
ネストできる要素
name、ver、description、logo、properties

このスタックの概要を「OpenStandia Ver.3.0.0.0」とします。
<application>
  <name>OpenStandia</name>
  <ver>3.0.0.0</ver>
  <description>OSSを一括インストールします。</description>
  <logo>nri_openstandia.gif</logo>
  <properties/>
</application>

license

説明
ライセンスファイルを定義します。
属性
なし
ネストできる要素
file

ライセンスが記述されたファイルを「license.txt」とします。
<license>
 <file>license.txt</file>
</license>

install-befores

説明
インストール全体の前処理の集まりを定義します。
属性
なし
ネストできる要素
install-before

インストール全体の前処理が複数定義されているとします。
※ インストール全体の前処理が複数定義されている場合は、上から順番に実行されます。
<intall-befores>
  <install-before def="${stack.application.properties.before-dir}/win.xml"/>
  <install-before def="${stack.application.properties.before-dir}/linux.xml"/>
    :
</install-befores>

products

説明
プロダクトの集まりを定義します。
属性
なし
ネストできる要素
product

複数プロダクトを必要とするスタックの例です。
<products>
  <product no="1" name="Apahce 2.2.6" def="${stack.application.properties.products-dir}/apache/httpd-2.2.6/win.xml"/>
  <product no="2" name="Apahce 2.2.6" def="${stack.application.properties.products-dir}/apache/httpd-2.2.6/linux.xml"/>
    :
  <product no="6" name="mod_jk 1.2.25" def="${stack.application.properties.products-dir}/mod_jk/mod_jk-1.2.25/linux-2.2.xml">
    <depends>
      <depend no="2"/>
    </depends>
  </product>
    :
</products>

install-afters

説明
インストール全体の後処理の集まりを定義します。
属性
なし
ネストできる要素
install-after

インストール全体の後処理が複数定義されているとします。
※ インストール全体の後処理が複数定義されている場合は、上から順番に実行されます。
<intall-afters>
  <install-after def="${stack.application.properties.demo-dir}/win.xml"/>
  <install-after def="${stack.application.properties.demo-dir}/linux.xml"/>
    :
</install-afters>

name

説明
名称を定義します。
属性
なし
ネストできる要素
なし

名称を「OpenStandia」とします。
<name>OpenStandia</name>

ver

説明
バージョンを定義します。
属性
なし
ネストできる要素
なし

バージョンを「3.0.0.0」とします。
<ver>3.0.0.0</ver>

description

説明
説明を定義します。
属性
なし
ネストできる要素
なし

説明を「OSSを一括インストールします。」とします。
<description>OSSを一括インストールします。</description>

logo

説明
GUI版インストーラーに表示するロゴ画像を定義します。
属性
なし
ネストできる要素
なし

ロゴ画像を「nri_openstandia.gif」とします。
<logo>nri_openstandia.gif</logo>

properties

説明
プロパティの集まりを定義します。
属性
なし
ネストできる要素
自由

プロダクト定義などが格納されているディレクトリの設定として
プロパティ名を「products-dir」、またその値として「products」を定義するとします。
<properties>
  <products-dir>products</products-dir>
</properties>

install-before

説明
インストール全体の前処理を定義します。
属性
def
インストール全体の前処理内容が記述されているxmlを指定します。
ネストできる要素
なし

前処理の定義がwin.xmlに記述されているとします。
※ 前処理の定義ファイルの中身は、プロダクト定義ファイルそのものです。
<install-before def="${stack.application.properties.before-dir}/win.xml"/>

product

説明
プロダクトを定義します。
属性
no
プロダクト番号を指定します。
※ 一意である必要があります。
name
プロダクト名称を指定します。
def
プロダクトインストール処理内容が記述されているxml(プロダクト定義ファイル)を指定します。
ネストできる要素
depends

Apacheをプロダクトとして定義するとします。
<product no="1" name="Apahce 2.2.6" def="${stack.application.properties.products-dir}/apache/httpd-2.2.6/win.xml"/>

install-after

説明
インストール全体の後処理を定義します。
属性
def
インストール全体の後処理内容が記述されているxmlを指定します。
ネストできる要素
なし

後処理の定義がwin.xmlに記述されているとします。
※ 後処理の定義ファイルの中身は、プロダクト定義ファイルそのものです。
<install-after def="${stack.application.properties.after-dir}/win.xml"/>

file

説明
ファイルを指定します。
属性
なし
ネストできる要素
なし

ファイルとして、「license.txt」を指定するとします。
<file>license.txt</file>

depends

説明
このプロダクトが依存するプロダクト番号の集まりを定義します。
属性
なし
ネストできる要素
depend

プロダクト番号(product要素のno属性)1と2と3に依存するとします。
<depends>
  <depend no="1"/>
  <depend no="2"/>
  <depend no="3"/>
</depends>

depend

説明
このプロダクトが依存するプロダクトをプロダクト番号で定義します。
すなわち、依存するプロダクトが同時にインストールされた場合のみこのプロダクトをインストールします。
属性
なし
ネストできる要素
なし

プロダクト番号(product要素のno属性)1に依存するとします。
<depend no="1"/>