IDS on MAC OS X のインストール

oninit

2008年02月14日 22:44

2012-10-09: 最新バージョンの Informix ( V11.70.FC4など)では、下記よりも導入方法がシンプルになっています。詳しくは製品に添付される導入ガイドをご覧ください。下記の解説は、Mac OSX 10.5ベースの内容になっています。
---------------------------------
Macintoshを使う機会があったので、Informix Dynamic Server "Cheetah2"をインストールしてみました。

インストールの基本的な操作は、他の Unix/Linuxプラットフォームと殆ど変わりません。

Mac OSX は、「ターミナル」 ( 「アプリケーション」フォルダ内の、「ユーティリティ」サブフォルダにあります ) を開けば、シェルコマンドを受け付けてくれます。一般的な X Winodw ベースの GUI 環境と似た感じで操作ができますが、普通の Unix/Linux環境に慣れていると、ユーザー、グループの作り方などで戸惑います。私は戸惑いました。Unix/Linux環境だと、/etc/passwd, /etc/group などを修正して何とかしてしまいがちですが、Mac OSX では、アカウントなどの情報はディレクトリ・サービスで管理されています。IDS for Macintosh OS Xのダウンロードファイルに含まれている readme に記されているとおり、dscl というツールを使ってユーザー "informix", グループ "informix" を追加しました。

readmeに記載されているとおり、dscl コマンドのコマンドライン上、"n" と表記されている部分は、ユーザー "informix" に割り当てたい未使用のユーザーID ( 100以上の未使用の整数値 )、および同じくグループ "informix" に割り当てる未使用のグループ ID に置き換えて実行してください。

ユーザーinformixをuid=100, グループinformixをgid=100で作成する場合:
dscl . -create /groups/informix
dscl . -create /groups/informix name informix
dscl . -create /groups/informix gid 100

dscl . -create /users/informix
dscl . -create /users/informix name informix
dscl . -create /users/informix uid 100
dscl . -create /users/informix gid 100
dscl . -create /users/informix home /Users/informix
dscl . -merge /groups/informix users "informix"


更に、インストールを実行する時の "root" アカウントにも要注意です。Mac OSX の初期状態では "root"アカウントはログイン出来ない状態になっています。IDS for Macintosh OS X の readme に英語の手順書へのリンク ( www.apple.com ) がありますが、同じ文書の日本語版が以下にあります。

Macintosh OS X で、"root" ユーザーを使用可能にする方法:
http://docs.info.apple.com/jarticle.html?artnum=106290

概要は次の通り:

1.Finderの「移動」メニューから「ユーティリティ」を選択。
2.「ディレクトリユーティリティ」を選択。
3.ダイアログボックス上に表示されている、鍵(南京錠の形)をクリック。
4.所有者パスワードを入力。
5.画面上端の「編集」メニューから、「ルートユーザを有効にする」を選択。

詳細は上のURLにある説明をどうぞ。

readmeファイルには、"ids_install.command" をダブルクリックするよう指示があります。ダウンロードされたアーカイブ ( dmg ) 内には、もうひとつ "ids_install" というファイルも含まれています。間違ってこちらをクリックしてもインストールできません。機をつけましょう。私はターミナルから直接 ids_installを起動してインストールしてしまいました。

さて、インストールが終わるといよいよONCONFIGファイルを書き換えて初期化したいところですが、その前にシステムの共有メモリーなどを確保するのを忘れずに。パラメーターの設定をせずにoninit -i すると初期化がうまくいきません。onstat -m を実行するとこんなエラーが・・・
00:20:11 IBM Informix Dynamic Server Started.
00:20:11 shmget: [ENOMEM][12]: key 52574802: The server ran out of memory during an attempt to allocate a new shared
memory segment.
00:20:11 mt_shm_init: can't create resident segment



インストールされた IDS のマシンノート ( デフォルトの場所にインストールした場合には、/opt/IBM/informix/release/en_us/0333 の下 ) を読み、カーネルパラメーターを設定しましょう。
マシンノートに書いてある、「テスト時に用いたカーネルパラメーター」を/etc/sysctl.conf ( これは、Mac OSX の場合ですね ) にコピペ(もちろん root で ) して、念のためシステムを再起動。

後は、ONCONFIG ファイルを書き換えて oninit -i すれば、他のUnix/Linux同様普通にInformixが起動します。Mac OSX用のInformixだからといって、特別な GUI は用意されていないようですね。

私は Macを使用する機会がなかなかないので、アカウントの作成など結構大変でした。Informixそのものの方の設定は簡単です。身近にMac ( Core2 Duo などの 64bit環境 ) をお持ちの方は是非試してみてください。


追伸:なぜか Solarisでの話。。

blockquote>00:20:11 IBM Informix Dynamic Server Started.
00:20:11 shmget: [ENOMEM][12]: key 52574802: The server ran out of memory during an attempt to allocate a new shared
memory segment.
00:20:11 mt_shm_init: can't create resident segment


参考ですが、このエラーは、Solarisでも Linuxでも、OS側の共有メモリーの上限を超えてIDSが共有メモリーを使おうとして、OSからエラーが返ってきたときに普通に出てきます。IDS 10を Solaris10にインストールするとき、同じようなエラーが出てOSのパラメーターの変更方法が分からず苦労したことがあります。こんなコマンド:
projadd -K "project.max-shm-memory=(prive,4GB,deny)" user.informix
でその場をしのぎました。/etc/systemを書き換えても何とかなるのでしょうか?


関連記事