FreeBSD ハンドブック
Prev | Chapter 10. Linux バイナリ互換機能 | Next

# 10.4. Oracle のインストール

Marcel Moolenaar 寄贈 `<marcel@cup.hp.com>`

## 10.4.1. はじめに

このドキュメントでは Oracle 8.0.5 と Oracle 8.0.5.1 Enterprise Edition の Linux 版を FreeBSD にインストールするための手順を解説します。

## 10.4.2. Linux 環境のインストール

まずは Ports Collection から `linux_base` と `linux_devtools` をインストールしてください。 これらの ports は FreeBSD 3.2 のリリース後にコレクションに加えられました。 もし FreeBSD 3.2 もしくはそれよりも古いものを使っている場合は ports コレクションをアップデートしましょう。ついでに FreeBSD をアップデートするのもいいでしょう。もし `linux_base-6.1` や `linux_devtools-6.1` でうまくいかなければ 5.2 を試してみてください。

もし賢いエージェント (intelligent agent) を起動したいなら Red Hat TCL パッケージ `tcl-8.0.3-20.i386.rpm` もインストールする必要があるでしょう。 公式の RPM パッケージをインストールするには一般的に次のようにします。

    # rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package

パッケージのインストール時にエラーが出てはいけません。

## 10.4.3. Oracle 環境の構築

Oracleをインストールする前に、適切な環境を設定する必要があります。 このドキュメントでは、 Oracle のインストールガイドに書いてあるようなことではなく FreeBSD で Linux 用 Oracle を動かすために特別に必要なことのみを解説します。

### 10.4.3.1. カーネルのチューニング

Oracle インストールガイドにあるように、 シェアードメモリーの最大サイズを設定しなければいけません。 FreeBSD では `SHMMAX` を使わないようにしてください。 `SHMMAX` は単に `SHMMAXPGS` と `PGSIZE` から計算されるだけなのです。 従って、`SHMMAXPGS` を使うようにしましょう。 インストールガイドに記述されている他のオプションは使えます。 例えば以下のようにします。

    options SHMMAXPGS=10000
    options SHMMNI=100
    options SHMSEG=10
    options SEMMNS=200
    options SEMMNI=70
    options SEMMSL=61

これらのオプションを意図した Oracle の使い方に合わせて設定してください。

また、 次のオプションがカーネルのコンフィギュレーションファイルにあることも確認します。

    options SYSVSHM #SysV shared memory
    options SYSVSEM #SysV semaphores
    options SYSVMSG #SysV interprocess communication

### 10.4.3.2. Oracle 用アカウント

他のアカウントを作るのと同じように Oracle 用のアカウントを作ります。 Oracle 用のアカウントに特別なのは Linux のシェルを割り当てるところだけです。 `/etc/shells` に `/compat/linux/bin/bash` を加え、Oracle 用のアカウントに設定します。

### 10.4.3.3. 環境設定

`ORACLE_HOME` や `ORACLE_SID` といった通常の Oracle 用の変数の他に次の変数も設定しなければなりません。

変数 | 値
--- | ---
`LD_LIBRARY_PATH` | `$ORACLE_HOME/lib`
`CLASSPATH` | `$ORACLE_HOME/jdbc/lib/classes111.zip`
`PATH` | `/compat/linux/bin /compat/linux/sbin /compat/linux/usr/bin /compat/linux/usr/sbin /bin /sbin /usr/bin /usr/sbin /usr/local/bin $ORACLE_HOME/bin`

全ての環境変数は `.profile` で設定することをお勧めします。 完璧なサンプルは以下の通りです。

    ORACLE_BASE=/oracle; export ORACLE_BASE
    ORACLE_HOME=/oracle; export ORACLE_HOME
    LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export LD_LIBRARY_PATH
    ORACLE_SID=ORCL; export ORACLE_SID
    ORACLE_TERM=386x; export ORACLE_TERM
    CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
    export CLASSPATH
    PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin
    export PATH

## 10.4.4. Oracle のインストール

インストーラーを起動する前に、`/var/tmp` に `.oracle` という名前のディレクトリを作る必要がありますが、 これは Linux エミュレーターにおけるちょっとした不整合のためです。 このディレクトリは誰でもが書けるか、もしくは oracle ユーザーのものにしておきます。 これで特に問題なく Oracle がインストールできるでしょう。 もし問題が起こったら、まずは Oracle の配布物や設定をチェックしてください。 Oracle のインストールが終わったら次の二つのサブセクションで解説するパッチを当てます。

よくあるトラブルは、TCP プロトコルアダプターが正しくインストールされていないことです。 そのため、一切 TCP リスナーを起動することができないのです。 次の操作はこの問題を解決するのに役立ちます。

    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk ntcontab.o
    # cd $ORACLE_HOME/lib
    # ar r libnetwork.a ntcontab.o
    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk install

もう一度 `root.sh` を起動するのを忘れないように!

### 10.4.4.1. root.sh へのパッチ

Oracle をインストールする時、`root` で行なう必要のあるいくつかの操作は `root.sh` と呼ばれるシェルスクリプトに記録されます。 `root.sh` は `orainst` ディレクトリにあります。次のパッチを root.sh に当てて 正しい場所にある chown コマンドを使うようにするか、 代わりに Linux ネイティブなシェルのもとでスクリプトを走らせましょう。

    *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
    --- orainst/root.sh Mon Dec 28 15:58:53 1998
    ***************
    *** 31,37 ****
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/bin/chown
    #
    # Define variables to be used in this script
    --- 31,37 ----
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/usr/sbin/chown
    #
    # Define variables to be used in this script

CD-ROM からのインストールでない場合は `root.sh` のソースにパッチを当ててもいいでしょう。 `rthd.sh` という名前でソースツリーの `orainst` というディレクトリにあります。

### 10.4.4.2. genclntsh へのパッチ

genclntsh スクリプトは一つの共有クライアントライブラリを生成するのに用いられます。 これはデモを作る時に使われます。 PATH の定義をコメントアウトするために次のパッチを当ててください。

    *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
    --- bin/genclntsh Tue Dec 22 15:36:49 1998
    ***************
    *** 32,38 ****
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst
    --- 32,38 ----
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst

## 10.4.5. Oracle の起動

インストラクションに従えば、Linux でと同じように Oracle を起動できるでしょう。

Prev | Home | Next
Mathematica のインストール | Up | 高度なトピックス