RHEL4 に Oracle 9i R2(OTN版) をインストールする際のポイント

結構苦戦したので、備忘録として。

  • バイナリの入手

US-OTN からバイナリをダウンロードする。ユーザー認証が必要*1なので注意。
http://www.oracle.com/technology/software/products/oracle9i/index.html

  • LD_ASSUME_KERNEL を設定する

環境変数 LD_ASSUME_KERNEL を設定しないと、インストールが途中で失敗するとの噂。
RHEL4 の場合は 2.4.19 を設定。*2

Unable to load native library: /tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386/libjava.so:
    symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

インストーラを起動しようとすると、こんなエラーが出るかもしれない。このエラー、どうもjdkのバグから発生する問題らしい(詳細は下記)。という訳で、libcwait.c ファイルをダウンロードしてきて、コンパイルしてやる。*3
http://groups.yahoo.co.jp/group/eclipse-ml/message/1259?expand=1
http://www.redhat.com/archives/fedora-list/2003-November/msg06994.html

$ wget ftp://people.redhat.com/drepper/libcwait.c
$ gcc -shared -o libcwait.so -fpic -O2 libcwait.c
$ export LD_PRELOAD=/foo/libcwait.so ./runInstaller

あとは、DISPLAY関係のトラブルもよくある。下記を参照のこと。
http://www.puschitz.com/InstallingOracle9i.shtml#StartingrunInstaller
私の場合は、

# xhost localhost
# su - oracle
$ export DISPLAY=localhost:0.0

として解決した。

  • インストール中にエラーが起こる

基本的には、ログを追ってみて判断すること。ログの場所は下記。

$ORACLE_BASE/oraInventory/logs/installAction.log
$ORACLE_HOME/install/make.log

私の場合は、下記のようなエラーが起こった。

Error invoking target install of makefile /u01/app/oracle/product/9.0.1/plsql/lib/ins_plsql.mk

これは、一般的には下記の方法で解決できるようだ。
http://claris.hp.infoseek.co.jp/oracle/rh7ora9/rh7ora9_install_1.html
しかし、私の場合はうまくいかなかった。make.log を追ってみると

undefined reference to `dl_iterate_phdr@GLIBC_2.2.4' collect2: ld returned 1 exit status
make: *** [sqlplus] Error 1

と出ている。これを Google で調べると、下記のような方法での解決例が。
http://d.hatena.ne.jp/stereocat/20051030
ということで、

$ wget http://ftp.kddilabs.jp/Linux/packages/fedora/core/2/i386/os/Fedora/RPMS/compat-gcc-7.3-2.96.126.i386.rpm
$ rpm -ivh compat-gcc-7.3-2.96.126.i386.rpm
$ cd /usr/bin
$ mv gcc gcc343
$ mv gcc296 gcc
$ cd $ORACLE_HOME/plsql/lib
$ make -f ins_plsql.mk install

としてインストール続行。

多分、Javaが要求する日本語フォントがないために文字化けしているのだと思う(インストーラ起動時のコンソールログを確認してみてください)。フォントを入れて解決する、もしくは、環境変数 LANG=C として英語でインストーラを起動する。ものぐさな人は後者がオススメ。私は後者でやりました。

  • 参考になったサイト

http://www.puschitz.com/InstallingOracle9i.shtml

*1:日本 Oracle とは別のアカウントが必要。ない場合は、ユーザー登録をすればよい。

*2:.bash_profile, .bashrc 等のファイルに書いておきましょう。

*3:通常のライセンスを買っている人なら p3006854_9204 patch を当てれば済む話なのだが……。