# Chapter 1: インストールガイド

## 1.1 Empress の インストール および コンフィグレーション

Empress RDBMSのインストールについて説明します。

Empress インストールキットは 1 枚の CD-ROM で提供されます。 このドキュメント中の配布メディアとはこのCD-ROMを意味します。

Empress システムをバージョンアップする場合は、 インストールする前にEmpress システムの更新 を参照してください。

### 1.1.1 システム必要条件

すべてのEmpress開発用システムをインストールするには、約60〜100メガバイトのディスク容量 と必要とするライセンスにより32〜64メガバイトのディスク容量が必要です。 Empressをインストールする前に十分なスペースがファイル・システム上にあることを 確認してください。

Empress のインストールでは実行モジュールはバイナリフォーマットで提供されているため、 コンパイラーを必要としませんが、以下の場合にはコンパイラーが必要となります。

- Empress Perl インターフェイス
- Empress確認テストを実行する場合
- Mr/MxルーチンあるいはダイナミックSQLのようなホスト言語インターフェースを使用する場合

またEmpress Web HTMLツールキットを使用する場合はインターネット・ブラウザーが必要になります。 ネットスケープ・ブラウザーは配布CD-ROMに収録されています。

### 1.1.2 配布ファイル所有権

ファイルがCD-ROMからコピーされる場合、インストールを行っているアカウントが 所有権を持ちます。インストールを始める前にEmpress管理者とするアカウントで ログインすることを確認してください。

Empress社としては`root`以外のアカウントで インストールすることを推奨します。

### 1.1.3 Empressソフトウェアのロード

マニュアルの中では、empressというアカウントを使用して、 ディレクトリー`/usr/empress`配下にEmpressをインストールするものとして 説明します。

- システム管理者（root）によりEmpress管理アカウントを作成してください。

      例：Linuxの場合

        # groupadd -g 1900 empress

        # useradd -d /usr/empress -g  1900 -s /bin/bash -u 1900 empress

- `empress`でログインし、umaskを022にセットしてください。 これはEmpressファイルを正確なアクセス権で保存します。

        # umask 022

- 次に CD-ROMをセットし与えられる指示に従います。

### 1.1.4 Empressのインストール

インストールプロセスを起動するためには、 オペレーティング・システムのプロンプト上で以下を実行してください。

- Unix/Linuxの場合

  1. EmpressのCD-ROMをマウントします。

           # mount -rt iso9660 /dev/cdrom /mnt/cdrom (例：Linux)

  2. CD-ROMマウントディレクトリーへ移動します。

           # cd /mnt/cdrom

  3. シェルスクリプトを実行します。

           # ./install.sh

- Windows の場合

  1. EmpressのCD-ROMをマウントします。

  2. システムはinstallプログラムを自動実行します

  3. 指示に従います。

Unix/Linuxシステムにネットスケープ・ブラウザーをセットアップしている場合、 インストールプロセスはネットスケープ・ブラウザーから実行されます。 このプロセスは、インストールプログラムを起動し、一般的な使用のために Empressをセットアップして、インストールの準備を通じてガイドします。

ネットスケープがセットアップされていない場合には、CD-ROMに収録された ネットスケープを一時的にセットアップされ、Empressのインストールを実行します。 インストール終了後にセットアップしたネットスケープは削除されます。

システムにネットスケープをセットアップできない環境の場合、 `install.sh`はテキストモードでインストールプログラムを起動します。

インストールプログラムは、ライセンスキーの入力を要求してきます。 Empress代理店より提供されるライセンスキーを用意してください。 ライセンスキーは 1 文字でもタイプミスすると再入力を要求されます。

ライセンスキーの入力が完了すると、インストールプログラムはキーの有効性をチェックします。 キーが無効の場合、エラー・メッセージを表示します。 ５回連続して正しくないキーが入力された場合、インストールプログラムは異常終了します。 異常終了した場合には再インストールを試みてください。 それでも失敗する場合にはライセンスキーの有効性について販売代理店に確認してください。

有効なライセンスキーが入力された場合、インストール可能なオプションの モジュールリストを表示します。また、各モジュールについてインストールするか、 しないかの応答があります。次のモジュールはライセンスキーに関係なく提供されます。

- Empress マニュアル・セット
- Empress ドキュメント・サーバー
- ネットスケープ
- Empress Perlインターフェース
- Empress Tcl/Tk インターフェース
- Empress ODBC クライアント

インストール先ディレクトリ、インストールモジュールを選択し終えたところで、 インストールモジュールの一覧を表示し、インストールを続行するか、中止するかの応答があります。

インストールする場合には、事前にオペレーティング・システムとEmpress 配布CD-ROMが 適合しているかご確認ください。適合していない場合にインストールを実行すると 以下のようなメッセージを出力される場合があります。

    例：Linux2.2へEmpress for Linux2.4をインストールしようとした場合

    /tmp/empinstl_g.727/empinstl/instbin/inst: /lib/libc.so.6: version `GLIBC_2.2.3'
     not found (required by /tmp/empinstl_g.727/empinstl/instbin/inst)

    /tmp/empinstl_g.727/empinstl/instbin/inst: /lib/libc.so.6: version `GLIBC_2.2'
      not found (required by /tmp/empinstl_g.727/empinstl/instbin/inst)

### 1.1.5 インストール結果

インストール結果は、Unix/LinuxまたはWindowsでそれぞれ以下のファイルに作成されます。

[Unix/Linux]
インストールディレクトリ配下empinstlディレクトリーの下の”install.log”ファイル

[Windows]
インストールフォルダの”Empress 8.62-X.XXX.XX Installation.txt”ファイル（X.XXX.XX）は リリース番号により異なります。

インストールが、なんらかの理由(これらの理由のうち、あるものはシステムと関連し、あるものはEmpressと関連する)のために 失敗した場合、メッセージは画面に表示され、install.logファイルに書き込まれます。 ”error”または”not found”などの文字列が出力されていないかチェックしてください。

### 1.1.6 Empress 環境変数の設定(Unix/Linux)

インストールプロセスの終わりにEmpress環境変数をスタートアップファイルへ 登録するかの応答があります。登録を許可した場合以下の設定を行います。

    例：スタートアップファイルが.bash_profileの場合。

       # ### Empress Installation Setup Block ###
       # Do not modify lines within the Empress Installation Setup Block
       source /usr/empress/Empress/v8.62/installation/bin/setenv.csh
       # ### Empress Installation Setup Block End ###

この登録を許可しなかった場合にはEmpressを使用する前に毎ログイン時に このスクリプトを実行することになります。 スクリプトはEmpress インストールディレクトリの 下の`bin`ディレクトリにあります。

### 1.1.7 全体で利用するための Empress のコンフィグレーション (Unix / Linux)

インストールに問題がなく、他の人が Empressを使うためのコンフィグレーションを したい場合、以下を参照してください。

ステップ 1.

  システム管理者権限（スーパーユーザー）を持っている場合は A を参照してください。 持っていない場合は B を参照してください。

  A.
    すべてのプログラムを`$EMPRESSPATH/bin`ディレクトリから`/usr/bin`に コピーします。

    カレントディレクトリを`$EMPRESSPATH/bin`へ移動します。

           % cd $EMPRESSPATH/bin

    `su`コマンドを使って、`bin`または`root`（または `/usr/bin` の所有者）になり、 カレントディレクトリのすべてのファイルを`/usr/bin`へコピーします。

           % cp * /usr/bin

    コピーが終了したら、ステップ 2 に進んでください。

  B.
    システムデフォルトディレクトリ中の `bin` にファイルをインストールすることができない場合、 以下のどちらかが必要となります。

    1. Empressのコマンドを起動する場合、プログラムのフルパスを指定するか、あるいは、
    2. サーチパス(PATH変数)にそのディレクトリのパスを入れるかになります。

ステップ 2.

  bin にファイルをインストールできたならば、 以下のコマンドのどちらかでマニュアルページを `man/man1`を`/usr/man/man1`へ、 `man/cat1`を`/usr/catman/man1` にコピーします。

  コピーを成功させるためには `/usr/man/man1`および `/usr/catman/man1` ディレクトリに対し、書き込み許可を持っている必要があります。 マニュアルページのインストールはEmpressのインストールにおいて 重要なステップではありませんが、（マニュアルがインストールされなくても Empressは動作するいう意味において） よりよいシステムを作成する上での手助けの方法として考慮する必要はあるかもしれません。

         % cd ../man
         % cp man1/* /usr/man/man1

  または

         % cd ../man
         % cp cat1/* /usr/catman/man1

  また、代わりとなる方法のひとつとして 環境変数 `MANPATH`に `$EMPRESSPATH/man`ディレクトリを 含める方法があります。

ステップ 3.

  シェアードライブラリがサポートされている場合、以下を実行します。

         % cd /usr/lib
         % ln -s $EMPRESSPATH/shlib/* .

  また、代わりの方法としてシステム変数 `LD_LIBRARY_PATH`に設定する方法があります。

### 1.1.8 Empress マニュアルセットの参照

Empressの CD-ROMには Empress製品のマニュアルセットが含まれています。 このマニュアルセットは、直接 CD-ROM からまたは HTTPサーバー経由でWeb ブラウザから 参照することができます。

#### 1.1.8.1 CD-ROM からのマニュアル参照

UNIX ワークステーション(および Linux PC) 上の Web ブラウザを利用する場合

1. CD-ROM をマウントします。（マウントしたディレクトリを`/cdrom` とします。）

2. Web ブラウザのロケーション(URL)をセットします。

          file:/cdrom/docs/docroot/index2.htm

Microsoft Windows マシン上の Web ブラウザを利用する場合

1. CD-ROM ドライブに CD-ROM を入れます。(CD-ROM ドライブを E ドライブとします)

2. Web ブラウザのアドレスまたはロケーションをセットします。

          E:\docs\docroot\index2.htm

#### 1.1.8.2 ネットワークからのマニュアルの参照

この場合、HTTPサーバーが必要になりますが、 Empress インストールプロセスはこれをセットし、自動的に立ち上げます。 しかしながら、サーバーのシャットダウン、および手動による立ち上げが 必要な状況である場合、以下のステップを行います。

       $EMPRESSPATH/bin/empdocsv on

その後に以下のコマンドを実行することでドキュメントを参照することできます。

       $EMPRESSPATH/bin/empdocs

### 1.1.9 データベース変換

バージョン 8.62 は以前のEmpress バージョンと互換性がありません。 詳細はバージョン 8.62 の互換性 に関連したセクションを参照してください。

バージョン 8.62 へアップグレードする場合、 すべてのアプリケーションは再コンパイル、再リンクが必要になります。 また、データベースに登録したEmpressのルーチンを利用したすべての パーシステント・ストアード・モジュールも再コンパイル、再リンクする 必要があります。

バージョン 6.2 以上のデータベースのアップグレードは `empcnvt` ユーティリティを利用することができます。 このアップグレードでは データ辞書に新しいシステムテーブルの追加と いくつかのファイルとディレクトリの更新を含み、 データ辞書の変換を行います。 データベースが完全にアップグレードされることにより、 バージョン 8.62 によって提供される新しい機能をサポートします。

v8.20 のデータベースのアップグレードでは `empupgrd` を利用することもできます。 データベースがアップグレードされることにより、 バージョン 8.62 のアプリケーションはデータベースにアクセスすることができます。 （empupgrd は単にデータベースが v8.62 で利用できるようするだけであり、 新機能等に関係したテーブル等は作成しません。)

`empcnvt` と `empupgrd` ユーティリティは マニュアル中のマニュアルページ 記述されています。 Empress v8.62 では、Empress 変数 MSPATH は必要ではなくなりました。 唯一、必要な変数設定として、EMPRESSPATH があり、、 EMPRESSPATH は Empress製品がインストールされたディレクトリを指定します。

## 1.2 Emprss システムの更新

### 1.2.1 インストール実行前

Empress システムを更新する場合、`empress` アカウントで たとえば "v8.62"のように新しいバージョン番号名のディレクトリを作成し、 そのディレクトリに新しいバージョンをインストールすることを推奨します。 また、新しいバージョンに切り替える準備が整うまで、Empress の前のバージョンに アクセスできるようにしてください。 ディストリビューション CD-ROM 中の バージョンノート（改善および修正のノート）の 内容を確認してください。

インストールする前に特別に注意することが２つあります。

- パス変数 と Empress パス

  インストールのために パス変数 または Empress パス(`EMPRESSPATH`)の設定は 必要ありません。 また、パス変数が前のバージョンのEmpressのパスにセットされていないことを確しかめな ければなりません。 これはインストールとテストにおいて、既にインストールされているEmpress （以前のバージョン)が使われることを意味します。

- Empress システム変数 (Empress テストを実行する場合のみ)

  Empressは `.zz` コマンドによって利用するエディタ、 シェルエスケープで使用するシェルの種類、 ダンプファイルのセパレータの値、 ヒストリー機能の保存コマンド数、 など、このような制御するためのシステム変数を数多く持っています。 変数の機能およびこれらの変数のデフォルトの値は、このマニュアルの Empress システム変数 に記述されています。

  Empress のテストの手順の中で標準の結果と比較するためにテスト結果を 出力しますが、標準の結果は、Empress システム変数のデフォルトに基づいて 作成されています。 テスト結果もまたこれらの変数に依存するため、 システム変数の値がデフォルトとは異なっている場合、 標準の結果とは一致しない結果を引き起こすかもしれません。

  そのため、`empress`アカウントの環境変数として いくつかのEmpress システム変数がセットされ、 この値がデフォルトの値と異なる場合は 環境からこれらの変数を削除してください。

### 1.2.2 インストール実行後

新しいバージョンのEmpress のインストール後に C API(mx/mr) / 埋め込みSQL / ODBC API を利用したアプリケーションがある場合、再コンパイル・リンクする 必要があります。これは、以前のバージョンのEmpressインクルードファイル およびライブラリとコンパイル・リンクされているためです。

## 1.3 Empress 4GL のためのターミナルのセットアップ

Empress 4GL は多くのターミナルタイプをサポートしています。 Empress 4GLを利用する場合、あなたが使用しているターミナルのタイプを指定する 必要があります。指定するターミナルタイプはターミナルデータベースに定義され、 そのターミナル名のリストを得るためには以下のコマンドを実行します。

       % emp4term

このコマンドにより、ターミナルデータベースの位置、格納されているターミナル名のリストおよび その詳細が表示されます。

Empress 4GLを実行するためには、あなたが利用しているターミナルに一致した ターミナル名を`TERM` 変数に設定しなければなりません。 たとえば、あなたのターミナルが DEC VT100 である場合、`TERM` 変数として `vt100` を指定します。Bourne シェル上で Empress を実行している場合は 以下をタイプしてください。

       % TERM=vt100
       % export TERM

また、C シェル上で Empress を実行している場合は、以下をタイプしてください。

       % setenv TERM vt100

あなたのターミナルがリストに含まれていないか、あるいはエミュレートしていない場合、 Empress 4GL ターミナルデータベースにターミナルをエントリーしなくてなならない かもしれません。 Empress 4GL 関連 :Empress 4GL: アドミニストレーターガイド

## 1.4 NFS プラットフォーム上 の Empress

### 1.4.1 NFS上の Empress の利用

このチャプターは、同機種間の NFS上で Empress を実行するユーザーのための章です。

EmpressのNFS 対応は Sun NFS ネットワーク上で最初に開発され、以来、 多くのNFS システムにEmpressは移植されました。 以降の説明では特に Sun の NFS に言及している一方で、説明および実装はすべての NFS ネットワーク上で共通です。

#### 1.4.1.1 システム要件

NFS ファイルシステムにおいて適切なファイルロックのサポートをするために NFS クライアントノードとNFSサーバーノードの両方はネットワーク ロックデーモン(`lockd`)の実行されていることが必要です。 加えて`lockd` は、あなたのシステムにおいてはネットワーク・ステータス デーモン(`statd`)が必要になるかもしれません。

また、いくつかの NFS の実装では ネットワークファイルロック機構を サポートしていないものがありますが、Empress はこのようなNFS 環境のロック機構 はサポートしていません。

### 1.4.2 NFS上での Empress データベースへのアクセス

ここでの説明はNFS上のデータベースへのいくつかのノード上のユーザによる アクセスに関係があります。この提示された問題は単一のノード上の 数人のユーザによってデータベースにアクセスすることには当てはまりません。

ここではいくつかのノード上のユーザによるアクセスのオブジェクトになる すべてのデータベースの管理者に向けられています。

#### 1.4.2.1 管理変数

`empmkdb` ユーティリティによりEmpress データベースが 作成された場合、 データベースはオペレーティングシステムのディレクトリとして作成されます。 このデータベースディレクトリ中に `tabzero`というファイルがあり、 `tabzero`ファイル中において Empress 管理変数のいくつかを定義しています。 `tabzero`中のこれらの変数に設定された値を編集することにより、 変更することができます。

この Empress のバージョンでは 管理変数 `MSNFSSHARE` が含まれ、 NFSが稼動するプラットフォームのために提供されています。

この `MSNFSSHARE` 変数は、データの損失、データの間違いなどの危険がない いくつかのノード上のユーザによって、データベースが同時にアクセスされることを 可能にするために設定する必要があります。 変数をセットするためには、`tabzero` 中の適切な行を編集してください:

       MSNFSSHARE=X

注意としてこの変数はデータベース固有であり、いくつかのノード上の ユーザーが同時にアクセスするすべてのデータベースに設定する必要があります。 この変数はデフォルトでは設定されていません。 変数の設定によって、そのデータベース上でのEmpress のパフォーマンスは劣化します。 ２倍か３倍ぐらい、速度が遅くなるかもしれません。

`MSNFSSHARE`変数の設定は Empressがアクセスされた それぞれのノードのメモリバッファのフラッシュ をしばしば要求するための 保証となります。 これは同時アクセス状況で、すべてのノード上のユーザが最新のデータに アクセスすることを保証します。 （単一のノード上のユーザは同じメモリバッファを共有するため、 単一のノード上の同時性を可能にするためにこの変数を設定する必要はありません。)

データベースに対していくつかのノード上のユーザーによって 連続的にアクセスされることが予期される場合、 `MSNFSSHARE`変数をデータベースに設定する必要があります。 この変数の設定されず、 このようなアクセスする間の時間が決定されない場合、 データの損失あるいは間違いが生じないことを保証するために必要です。 同じノード上のユーザーによる連続的なアクセスは `MSNFSSHARE`の設定は必要ではありません。

### 1.4.3 NFS 上のファイルとデータベース権限

ここでは NFS 上のEmpressのファイルアクセス権限とデータベースアクセス 権限について説明します。

#### 1.4.3.1 ファイルアクセス権限

UNIX/LINUX下のファイルアクセス権限は、ユーザー、グループ、その他に対する 読み取り、書き込み、実行の組み合わせとしてのアクセス権限が与えられます。 ファイルにアクセスする試みは、プロセスに関連したユーザー ID が、ファイルに 付けられたアクセス権と比較され、ユーザーが適切な許可を持っていれば、 アクセスが許されます。

NFSにおいては、ユーザーID はユーザーがログインするノードによって決定されます。 これは、アカウントの生成およびユーザーIDの割り当てが集中管理下ではなく、 与えられたユーザーが異なるノード上に異なるユーザーIDを持つことができることを意味します。 ユーザーとユーザー ID のマッピングがネットワーク介して 1 対 1 でない場合に ユーザーID が異なったときには別のノードにログインされた一方ファイルを 作成するユーザが、適切なアクセス権を持つ保証はありません。 更に、別のノードにNFSマウントされるファイルシステム上で駐在する場合に、 1つのノード上のユーザーによって作成されたファイルはもう一人のユーザによって 故意ではなくアクセス可能かもしれません。

#### 1.4.3.2 データベース権限

データベース権限とは 広い意味として、 そのデータベースのデータベース管理者の同一性の関係であり、 またデータベース内のテーブルの所有者であり、 そしてテーブルへのアクセス権限をデータベースのユーザーに与えることを 意味します。 これらの権限に関したすべての情報はデータ辞書に格納されています。 また、データベースへアクセスするユーザー名はログイン名によって決定されます。

#### 1.4.3.3 NFS 上でのデータベースアクセス

Empressデータベースのテーブルにアクセスするために、 適切なUNIXファイル権限と適切なデータベース権限を持っている必要があります。 ユーザーがNFSをマウントされたファイルシステム上にあるデータベースに アクセスできることを保証するために ユーザーはデータベースにアクセスするための通常使用する 同じユーザーID　および　同じログイン名を持っていなければなりません。 ユーザーIDは UNIXシステム許可をコントロールし、 ログイン名はデータベース・アクセス権限をコントロールします。

反対にアカウントの生成が集中管理されていないネットワーク上では データベース・セキュリティは保証することができません。 ノードのシステム管理者が、データベースが存在するファイル・システムを NFSマウントすることができ、 次にデータベースにアクセスすることができるログイン名/ユーザーIDの 組み合わせを使用して、アカウントを作成することができれば、 そのデータベースはアクセスすることができます。