Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

InterSystems IRIS ディストリビューションへの UNIX® インストール・パッケージの追加

この付録では、既存の InterSystems IRIS® Data Platform ディストリビューションに新しい UNIX® インストール・パッケージを追加する方法を説明します。この追加方法はチュートリアル形式で示し、InterSystems IRIS インスタンス・ディレクトリに追加ファイルをコピーする単純なパッケージを作成する場合について解説します。

Note:

インストール・パッケージは UNIX® シェル・スクリプトを使用して実装するため、これよりはるかに複雑な操作を実行するパッケージも作成できます。

チュートリアル

Foo9000 という名前のイメージング・デバイスに接続するインターシステムズのコールアウト共有ライブラリ ("コールアウト・ゲートウェイの使用法" の “InterSystems コールアウト・ライブラリの作成” の章を参照) を記述したとします。このライブラリを libfoo9000.so としてコンパイルします。このライブラリが InterSystems IRIS と共にインストールされるようにしたいとします。また、インストール時に、このライブラリの接続先デバイス (Foo9000) のネットワーク・サーバ名を入力するようにユーザに求めるプロンプトが表示されるようにする必要もあります。この情報は InterSystems IRIS インスタンスの install-dir\mgr ディレクトリ内の構成ファイルに保存されます。

既存の InterSystems IRIS キットから開始します。

~/kit:>ls
irisinstall   cplatname docs  lgpl.txt NOTICE
copyright.pdf dist   kitlist LICENSE package

また、コンパイルしたライブラリ (libfoo9000.so) を使用します。

~/lib:>ls
libfoo9000.so

まず、ライブラリを保存するキット内の場所を選択し、その場所にライブラリをコピーする必要があります。規約により、プラットフォーム別のライブラリは dist/package/platform ディレクトリ (~/kit/dist/foo9000/lnxsusex64 など) に保存します。

~/kit:>cd dist
~/kit/dist:>mkdir foo9000
~/kit/dist:>cd foo9000
~/kit/dist/foo9000:>mkdir lnxsusex64
~/kit/dist/foo9000:>cd lnxsusex64
~/kit/dist/foo9000/lnxsusex64:>cp ~/lib/libfoo9000.so .

次に、インストール・パッケージのディレクトリを作成し、パッケージについて記述する manifest.isc ファイルをこのディレクトリに追加します。最も単純な形式の manifest.isc ファイルでは、パッケージ名のみを記述します。この名前はパッケージ・ディレクトリの名前 (foo9000) と一致させる必要があります。

~/kit/package:>mkdir foo9000
~/kit/package:>cd foo9000
~/kit/package/foo9000:>emacs manifest.isc
package: foo9000

パッケージ内が空だと処理は何も実行されませんが、このチュートリアルでは、次の処理を実行する必要があります。

  1. Foo9000 をホストするサーバ名の入力をユーザに求めるプロンプトを表示する。

  2. install-dir\mgr ディレクトリ内の構成ファイルにこの情報を保存する。

  3. インスタンス・バイナリ・ディレクトリにライブラリ (libfoo9000.so) をコピーする。

パッケージ・インストーラは複数のフェーズで処理を実行します。そのうち重要なフェーズは次のフェーズです。

  • “parameters” フェーズ

  • “install” フェーズ

Note:

パッケージには、フェーズごとに、それぞれのフェーズの名前を持つ Bourne シェル・スクリプトを格納することができます。パッケージ・インストーラは、フェーズ内の適切な時点で、各パッケージのスクリプトを実行します。パッケージのスクリプトで所定のフェーズの実行が正常に終了すると、最終コマンドによって明示的または暗黙的にエラー・コード 0 が返されます。正常に終了しなかった場合は、0 以外のエラー・コードが返されます。

“parameters” フェーズでは、パッケージのインストールに必要な情報を (通常ユーザに入力を求めることによって) 収集します。このフェーズでは、システムへの永続的な変更は行いません。通常、“parameters” フェーズ後に、ユーザがインストールの取り消しを必要に応じて選択できるようにします。取り消しが選択された場合、システムがインストール・プロセスによる影響を何も受けていない状態になっていなければなりません。

“install” フェーズでは、システムを変更します。無人インストールや自動インストールが実行される場合があるため、install フェーズ中はユーザに情報の入力を求めないようにします。

パッケージによっては、ユーザからの情報の入力が不要、つまり “parameters” スクリプトが不要な場合があります。特定のフェーズのスクリプトがパッケージに含まれていない場合、そのフェーズ中、そのパッケージの処理は何も実行されません。

まず、foo9000 パッケージ用の “parameters” スクリプトとして、以下のようなスクリプトを作成したとします。

~/kit/package/foo9000:>emacs parameters
#!/bin/sh
echo "Please enter host name of the Foo9000 imaging server: "
read host
echo "Host $host entered."

このスクリプトを実行すると、以下のように、ホスト名の入力を求めるプロンプトが実際に表示されます。この情報は host 変数に記録されます。

~/kit/package/foo9000:>sh parameters
Please enter host name of the Foo9000 imaging server:
cupertino
Host cupertino entered.

しかし、host 値を取得した後、この値をどう処理したらいいでしょうか。スクリプトの実行が終了すると、この情報は失われるため、“install” フェーズでこの情報を構成ファイルに書き込む必要が生じたときに利用できません。

Note:

“parameters” フェーズではユーザのシステムに何の影響も及ぼさないようにするため、この時点ではまだ構成ファイルを作成しません。

パッケージ・インストーラは、複数のフェーズや複数のパッケージで情報を共有できるようにする便利な関数のペア ImportExport を備えています。通常のシェル・スクリプトのメカニズムによって、これらの関数を parameters.include ファイルに組み込んで使用できます。

#!/bin/sh
. parameters.include
echo "Please enter host name of the Foo9000 imaging server: "
read host
echo "Host $host entered."
Export foo9000.host $host

Export 関数は、エクスポートする (通常、スクリプトのローカル変数から) パラメータ変数の名前とその値を取ります。Import 関数ではこの逆になります。最初の引数には、あらかじめエクスポートされている値のインポート先のローカル変数を指定し、2 番目の引数には、エクスポート先のパラメータ変数の名前を指定します。

Note:

規約により、パラメータ関数の名前は、package name.local variable name 形式の名前 (foo9000.host など) にします。

これで、インストール・プロセスに必要なすべての Foo9000 情報が “parameters” スクリプトで収集されるようになったため、次は “install”スクリプトを作成します。

~/kit/package/foo9000:>emacs install
#!/bin/sh
. parameters.include 
Import host foo9000.host
echo host=$host > ????/mgr/foo9000.cfg
cp ????/dist/foo9000/????/libfoo9000.so ????/bin

以下の詳細を指定する必要があります (上記スクリプトの ???? の部分)。

  • インストールを作成するインスタンス・ディレクトリの場所。

  • インストール元のキットの場所。

  • インストールするプラットフォームの種類。

これらの質問は “parameters” スクリプトに組み込むこともできますが、ユーザはこれらの情報をインストールの初期段階で既に入力しているため、混乱を招く可能性があります。代わりに、必要な情報を提供する他のパッケージからパラメータ変数をインポートします。これが可能なのは、irisinstallirisinstall_client または irisinstall_silent スクリプトを使用したインストールが成功すると ("InterSystems IRIS のインストール" を参照)、これらの変数と値を含んだ parameters.isc ファイルがインストール・ディレクトリに作成されるためです。parameters.isc ファイルの変数の一覧は、この付録の最後にある "InterSystems IRIS インストール・パラメータ・ファイルの変数" のテーブルに掲載しています。

Note:

セキュリティ上の理由により、parameters.isc ファイルには root ユーザのみがアクセスできます。

特定のパッケージのパラメータ変数を使用するためには、現在のパッケージ (foo9000) が別のパッケージに依存すること、したがって各フェーズで別のパッケージの後に処理する必要があることを、パッケージ・インストーラに認識させる必要があります。それには、以下に示すように、現在のパッケージの manifest.isc ファイルに “prerequisite” の各値を追加します。

~/kit/package/foo9000:>emacs manifest.isc
package: foo9000
prerequisite: server_location
prerequisite: legacy_dist
prerequisite: platform_selection

これで、指定したパッケージからパラメータ変数をインポートし、現在のパッケージのインストール・スクリプトの実行に使用できるようになります。

~/kit/package/foo9000:>emacs install
#!/bin/sh                                    
. parameters.include
Import host foo9000.host
Import tgtdir "server_location.target_dir"
Import srcdir "legacy_dist.source_dir"
Import platform_family "platform_selection.platform_family"
echo host=$host > $tgtdir/mgr/foo9000.cfg
cp $srcdir/dist/foo9000/$platform_family/libfoo9000.so $tgtdir/bin

パッケージ foo9000 はほぼ完成しました。最後の作業として、関連する既存のパッケージの prerequisite リストにこのパッケージを追加します。それにより、パッケージ・インストーラは、その関連パッケージのインストールを完了するために、今回作成したパッケージを処理するようになります。この場合、InterSystems IRIS サーバのインストール時に必ずこのライブラリのインストールと構成が行われるようにする必要があるため、「database_server」パッケージの manifest.isc ファイルで、このパッケージの prerequisite リストに新しいパッケージを追加します。

~/kit/package/database_server:>emacs manifest.isc
package: database_server
prerequisite: legacy_dist
prerequisite: platform_selection
prerequisite: server
prerequisite: server_location
prerequisite: upgrade
prerequisite: available_disk_space
prerequisite: posix_tools
...
prerequisite: isql
prerequisite: zlib
prerequisite: udp
prerequisite: bi
prerequisite: foo9000

上のリストから明らかなように、サーバ・インストールの作成には多くのパッケージが必要ですが、これで、irisinstall を実行すると、パッケージ foo9000 の構成とインストールが実行されるようになりました。

~/kit:>sudo ./irisinstall
Your system type is 'SuSE Linux Enterprise Server 10 (x64)'.
Currently defined instances:
IRIS instance 'TRWTURBO'
directory: /home/testUser/TRWTURBO
versionid: 2018.1.0.508.0
conf file: iris.cpf (SuperServer port = 1972, WebServer = 57785)
status:  crashed, last used Sat Sep 22 08:37:32 2018
Enter instance name: TRWPACK1
Do you want to create IRIS instance 'TRWPACK1' ? Y
...
Please enter host name of the Foo9000 imaging server:
cupertino
Host cupertino entered.
...
Do you want to proceed with the installation ? Y
...
Installation completed successfully
~/TRWPACK1/bin:>ls libfoo*
libfoo9000.so
~/TRWPACK1/mgr:>cat foo9000.cfg 
host=cupertino

parameters.isc ファイルの内容

以下の表は、parameters.isc ファイルに記載されている変数とその説明、およびサンプル値、または有効な値の一覧です。

InterSystems IRIS のインストール・パラメータ・ファイルの変数
変数名 説明

(有効な値) または例

dist.source_dir インストール媒体のソース・ディレクトリ。

/iriskit

legacy_dist.source_dir 従来の目的では、インストール媒体のソース・ディレクトリ。

/iriskit

product_info.version インターシステムズ社製品のバージョン番号。

2018.1.0.100.0

product_info.name インターシステムズ社製品の名前。

InterSystems IRIS

platform_selection.platform インストール先プラットフォームに対するインターシステムズ社の略称。

lnxrhx64

platform_selection.platform_family インストール先プラットフォーム・ファミリに対するインターシステムズ社の略称。

lnxrhx64

platform_selection.endianness プラットフォームのエンディアン・バイト・オーダー。

(big/little)

platform_selection.os プラットフォームのオペレーティング・システム。uname コマンドの値。

Linux

posix_tools.user_add Portable Operating System Interface (POSIX) 準拠のユーザ追加ツール。

/usr/sbin/useradd

posix_tools.group_add POSIX 準拠のグループ追加ツール。

/usr/sbin/groupadd

posix_tools.grep POSIX 準拠の grep ユーティリティ。

grep

posix_tools.id POSIX 準拠の id ユーティリティ。

id

posix_tools.ps_opt プロセスのリスト表示ですべて展開するオプション。

-ef

posix_tools.gzip Gnu 準拠の zip ユーティリティ。

gzip

posix_tools.shared_ext 共有ライブラリ・ファイルの拡張子。

so

posix_tools.symbolic_copy POSIX 準拠のシンボル・コピー・コマンド。

cp -Rfp

posix_tools.tr POSIX 準拠の変換ユーティリティ。

tr

posix_tools.shared_ext1 共有ライブラリ・ファイルの代替の拡張子。

so

posix_tools.permission 選択されたファイルに適用される POSIX 準拠の特権。

755

posix_tools.dir_permission 選択されたディレクトリに適用される POSIX 準拠の特権。

775

server_location.target_dir サーバ・インストールのターゲット・ディレクトリ。

/test/IRIS

server_location.is_server_install これがサーバ・インストールであるかどうかを示す。

(N/Y)

server_location.is_nonroot_install これが非 root インストールであるかどうかを示す。

(N/Y)

server_location.instance_name インスタンス名。

IRIS

server_location.is_new_install これが新規インストールであるかどうかを示す。

(N=アップグレード/Y=新規)

server_location.is_new_directory 新規ディレクトリを作成するかどうかを示す。

(N/Y)

server_location.registry_dir InterSystems IRIS レジストリ・ディレクトリの場所 (ローカルのファイル・システム上に配置する必要がある)。

/usr/local/etc/irissys

server_location.iris インストール中に、iris が存在するディレクトリ。

/iriskit/dist/lnxrhx64/bin/shared/iris

server_location.is_dr_mirror このインスタンスが災害復旧 (DR) ミラー・メンバかどうかを示す。

(N/Y)

postinstall* パラメータ・ファイル・フェーズの後で実行するパッケージを指定。

upgrade

install_mode.setup_type インストールのタイプ。

(Development/Server/Custom)

unicode_selection.binary_type インストールするバイナリのタイプ。

(unicode/eightbit)

unicode_selection.install_unicode この製品の Unicode 版をインストールするかどうかを示す。

(N/Y)

security_settings.iris_user InterSystems IRIS スーパーサーバの実効ユーザ

irisusr

security_settings.iris_group InterSystems IRIS の実効グループ

irisusr

security_settings.manager_user インスタンスの所有者。

root

security_settings.manager_group インスタンスの開始および停止を許可されたグループ。

develop

security_settings.dbencrypted 起動時に暗号化キーを有効にするかどうかを示す。

(0/1)

security_settings.dbenckeyfile 暗号化キーのパス。

このパラメータは空白でもかまいません。

security_settings.dbenckeyuser キーを有効にできる管理者の名前。

このパラメータは空白でもかまいません。

security_settings.dbenckeypassword キー管理者のパスワード。パラメータ・ファイルが保存される前にクリアされます。

このパラメータは空白でもかまいません。

security_settings.personal_database パーソナル・データベース機能を使用するかどうかを示す。

(N/Y)

security_settings.initial_level 初期のセキュリティ設定。

(Minimal/Normal/LockedDown)

security_settings.already_secured 5.1 以前のインスタンスからアップグレードしている場合に、セキュリティ設定が必要かどうかを示す。

(N/Y)

security_settings.password irisinstall から実行している場合は、パラメータ・ファイルの格納前にパスワード・フィールドがクリアされる。
installer.manifest DefaultInstallerClass.xml (エクスポートされた %Installer クラス) の場所。以下はその例です。

/home/user/Downloads/DefaultInstallerClass.xml

installer.manifest_parameters インストーラ・マニフェストのパラメータの場所。

SourceDir=/home/user/Downloads

installer.manifest_loglevel マニフェストのログ・レベルを指定する。

(-1/0/1/2/3)

installer.manifest_logfile ログ・ファイル名を指定する。

/manifests/IRIS-installManifestLog.txt

port_selection.superserver_port スーパーサーバ・ポート番号。

1972

port_selection.webserver_port Web サーバのポート番号。

52773

port_selection.jdbcgateway_port Java Database Connectivity (JDBC) ゲートウェイ・ポート番号。

62972

csp_gateway.configure 外部 Web サーバ用に Web ゲートウェイを構成するかどうかを示す。

(N/Y)

csp_gateway.web_server_type Web ゲートウェイで使用する既存の Web サーバのタイプ。

(Apache/SunOne/None)

csp_gateway.apache_version Apache Web サーバのバージョン
csp_gateway.apache_user Apache Web サーバのユーザ名
csp_gateway.apache_conf_file Apache Web サーバ構成ファイルの場所。

/etc/httpd/conf/httpd.conf

csp_gateway.apache_pid_file Apache Web サーバ・デーモンのプロセス ID を記録するファイル。

/usr/local/apache/logs/httpd.pid

csp_gateway.apache_use32bit Apache Web サーバで 32 ビット・アーキテクチャを使用するかどうかを示す。

Y/N

csp_gateway.sunone_server Web ゲートウェイで使用する Sun ONE サーバの場所。

/usr/netscape/server4/httpd-production

csp_gateway.directory Web ゲートウェイ・ファイルが保存されるディレクトリ。
license_key.enter_key インストール中にキーをインストールするかどうかを示す。

N/Y

license_key.license_file enter_key の値が Y の場合、キー・ファイル情報の場所。
agent.user_account ISCAgent のユーザ名。

iscagent

agent.user_group ISCAgent のグループ名。

iscagent

agent.install ISCAgent がインストールされているかどうかを示す。

(N/Y)

client_location.target_dir クライアントのみのインストールのターゲット・ディレクトリ。

test/IRIS

client_location.is_client_install これがクライアント・インストールであるかどうかを示す。

(N/Y)

install*

database_server

postinstall*

database_server

japanese_docs.install 日本語ドキュメント・ソースをインストールするかどうかを示す。

(N/Y)

install* インストールするコンポーネント名。

* このインストール変数は、インストールするコンポーネント 1 つにつき 1 回ずつ、パラメータ・ファイルに登場します。カスタム・インストール、またはクライアントのみのインストールでは、条件に応じて、以下のいずれか、またはすべてが生成されます。

  • dev_kit

  • odbc

  • cpp_binding

  • cpp_sdk

  • engine_link_libraries

  • light_cpp_binding

  • addenda

  • install_confirmation

  • copyright

FeedbackOpens in a new tab