データベース - IBM DB2 - Linux に CUI インストール

 
1. 能書き
2. ホスト名は名前解決できなければならない
3. インストール先のフォルダ名
4. ここからが問題だ

1. 能書き

 正式なタイトルは「『CentOS』に『DB2 クライアント』を『CUI』インストールしようとして苦労した話」なのだが、長いので割愛。  以前「Soralis」にクライアントをインストールしたときは、GUI インストールしたときに作成した応答ファイルを CUI で db2setup に食わせてやれば、割とすんなりインストールできたんですが。  「Linux」では苦労しちゃったんだなぁ。

2. ホスト名は名前解決できなければならない

 これは、当然と言えば当然で、きちんと設定していなかったわたしが悪い。

> hostname
 で表示されるホスト名がきちんと名前解決できていなければならない。  インターネットにつながっていないとしても /etc/hosts に記述していなければなりません。

3. インストール先のフォルダ名

 本題に移る前にもうひとつ。  インストール先のデフォルトフォルダは Solaris や AIX の場合

/opt/IBM/DB2/V○.○
 なのですが。  Linux の場合

/opt/ibm/DB2/V○.○
 なのです。  わかりますか?  「IBM」と「ibm」。  Windows 系じゃないんだから。大文字と小文字が違えば、プログラムやスクリプトを書いた際の移植の問題が生じるってもんです。  まあ、インストール先は GUI でインストールするときはダイアログで指定することができるし、CUI の場合は、応答ファイルに適切に記述しておけば問題ないんですが、迂闊にデフォルト値を使用してしまうと痛い目をみることがありそうです。

4. ここからが問題だ

 前項までのことを踏まえて、Linux でインストールをしたわけです。  GUI で作成した応答ファイルを適切なディレクトリに配置し  以下のファイルを /tmp の下に置いて

v○.○fp△_sun64_client.tar.gz
v○.○fp△_sun64_nlpack.tar.gz
 解凍

/tmp/ディレクトリ/client
/tmp/ディレクトリ/nlpack
 ができて準備完了。  以下のコマンドでインストールするわけですが・・・

> /tmp/ディレクトリ/client/db2setup -r /ディレクトリ/db2client.rsp
 まず、どきっとするのは

DB2 データベース「Server」 の要件と一致しませんでした。バージョン:「10.5.0.6」。

現行システムで満たされていない前提条件の要約:

DBT3514W  db2prereqcheck ユーティリティーは次の 32 ビット・ライブラリー・ファイルの検出に失敗しました: 「/lib/libpam.so*」。

DBT3514W  db2prereqcheck ユーティリティーは次の 32 ビット・ライブラリー・ファイルの検出に失敗しました: 「libstdc++.so.6」。
 てな表示が出るのですが、まず、クライアントをインストールしているので『「Server」 の要件と...』てのは関係ないのだ。  それから、インストール先は 64 ビットの環境なのですが、下記のサイトの記事を読むと

 「32 ビット・アプリケーションを使用する予定がない場合」はこのエラーが出力されても問題ないのです。

 問題なのは、その先で・・・


ご使用条件受諾のチェック :.......成功
エラー: 現在のインストールは非対話モードで実行しています。非対話モードでは、
すべてのファイル・セットのロケーションをコマンド行または応答ファイル内で指定する
必要があります。応答ファイルによるインストールを実行している場合は、応答ファイル
・キーワード「PACKAGE_LOCATION」を使用して欠落しているファイル・セット「
DB2_CONTROL_CENTER_HELP_JP」のロケーションを指定してください。キーワードは必要に
応じて複数回使用できます。db2_install
を使用している場合は、欠落しているファイル・セットのロケーションをコマンド行で指
定してください。

DB2 ファイル・セットのインストール :.......失敗
エラー: このコンピューターに「IBM Data Server Client
」をインストール中に大きなエラーが起きました。インストールを続行しません。問題が
解決しない場合は、技術サービス担当者に連絡してください。
 というエラーでインストールに失敗してしまうのです。  ここで長いこと試行錯誤しました。  トレースファイルを出力してみてわかったのが、どうも言語パックのインストールに失敗しているようなこと。  クライアントと言語パックを別々にインストールする方法もあるようですが。IBM さんのサイトを読むと「DB2 Version 10.1 for Linux, UNIX, and Windows」以降では、非推奨となっているようなのです。

 で、さらに試行錯誤してわかったこと。
 「Solaris」では「client」と「nlpack」のディレクトリを同階層におけばよかったのですが、「Linux」では「nlpack」のディレクトリを応答ファイルに明記する必要があるのでした。

 応答ファイルの例を記すならば (下記の例は、DB2 のインスタンスに既存ユーザを設定しています)


*-----------------------------------------------------
* Generated response file used by the DB2 Setup wizard
* generation time: 日時
*-----------------------------------------------------
*  Product Installation
LIC_AGREEMENT       = ACCEPT
PROD       = CLIENT
FILE       = /インストール先のディレクトリを絶対値で記述
INSTALL_TYPE       = TYPICAL
* ----------------------------------------------
*  Instance properties
* ----------------------------------------------
INSTANCE       = inst1
inst1.TYPE       = client
*  Instance-owning user
inst1.NAME       = DB2 インスタンスユーザ名
inst1.UID        = ユーザID
inst1.GROUP_NAME       = グループ名
inst1.HOME_DIRECTORY       = ユーザのホームディレクトリを絶対値で記述
inst1.AUTOSTART       = NO
*-----------------------------------------------
*  Installed Languages
*-----------------------------------------------
LANG       = EN
LANG       = JP
PACKAGE_LOCATION         = /nlpack のディレクトリを絶対値で記述/nlpack
 最下行が編集して追加している行です。  この行を追加することによって、無事 CUI インストールできました。