一般的に、Oracle のドキュメントに従うのがいいでしょう。悪くない出来 ですし、それに従っておけば、ずっとましなサポートを Oracle から受ける ことができます。 (Oracle Applications のドキュメントに従って - そうなるんじゃないかと わかっていたものの - 物事をぶち壊して終わったことがありました。それが まともなサポートを受ける唯一の方法だったのです)
私のドキュメントでは概略を説明しますが、Oracle のドキュメントも依然 手元におく必要があります。
インストール作業の一部として、Oracle は数多くの質問をたずねてきます。 一般に、そんなに難しいものではありませんが、私の入力とその理由を 見てみましょう。
/tmp/OraInstall/orainstRoot.sh
を走らせる必要があります。指示の通りにやりましょう。(pdksh
や bash
を使って成功裏にこのスクリプトを終了させるには、「B シェル互換モード」
で走らせる必要があるかもしれません) 終わったら 'Retry' をクリックします。
あいにく、Oracle から送られてきた CD はたぶんバージョン 8.1.5.0.0 でしょう。他のソフトウェアの最初のリリースがたいていそうで あるように、このバージョンにも問題があり、(問題は空ファイル がらみなので、かなり深刻です) バージョン 8.1.5.0.2 へバージョンを上げる ためのパッチが不可欠です。この HOWTO の「コンフィギュレーション」の 節に進むには、確実に必要になってきます。ここに記述されたパッチは、 累積パッチです。つまり、8.1.5.0.0 から 8.1.5.0.2 へ移行するのに必要な ファイルをすべて含んでいるということです。
必要なファイルは Oracle のウェブサイトにあり、 インストールするのは比較的簡単です。 (訳注:日本で出荷されている R8.1.5には R8.1.5.0.1 のパッチが付属しています)
$ORACLE_HOME
)。
mkdir /tmp/orapatch cd /tmp/orapatch
tar zvxf $ORACLE_HOME/patches/linux815patches.gz
./linux_815patches.sh
".profile"(またはふだん使うシェルでそれに相当するもの) に次の行を加えてください。
. oraenv export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/libなぜ Oracle のインストーラがこれをやらないのかは謎です。
次にログインするときに、"[: integer expression expected before -lt
"
というメッセージを見たら、それは 'oraenv' は ULIMITの中に
デフォルトの 'unlimited' ではなく整数を求めていたからです。
このエラーを無視しても悪影響はありませんが、
任意の有限数を ULIMIT に設定することで、出ないように
することができます。
まず正しいバージョンの JVM を走らせているか確認してください。 Oracle が彼らのソフトウェアに対して何をしているのかはわかりませんが、 使用するバージョンに深く依存しています。
次に、CD のルートディレクトリから runInstaller
を走らせる代わりに、
install/linux
に移動して シェルスクリプト runInst.sh
を走らせると
うまくいくかもしれません。
この問題は、RedHat 6.0 より 6.1 でよくあるようで、新しい C ライブラリに 関係しているのかもしれません。
また、Gnome の通常のウィンドウマネジャ Enlightenment でバージョンが違うと この問題が発生する可能性があると聞いたことがあります。バージョンを上げるか、 KDE や Fvwm2 といった他の環境に切り替えてみてください。 (訳注:これは RedHat 6.0 に関する問題です。対応したパッチが RedHat からダウンロード 可能になっています)
これは珍しいことではありません。通常、これは古いバージョンの Enlightenment を走らせているということを意味しています。バージョンを上げ たり他の環境に切り替えたりすることで、この問題を解決することができるはず です。
これと似たような問題ですが、もっと先の段階でインストールプログラムが 消えてしまうこともあります。インストールが8割がた終了したあたりで起こること の多い現象です。どうやらメモリが不足しているらしいというのが大方の見方です。 マシンのスワップの量を増やしてみるといいでしょう。200MB より多ければ十分な はずです。
どのバージョンの Java バーチャルマシンを使っていますか?多くの人たちが 他のバージョンでの成功を主張しているものの、私の場合、大部分の問題が 解決したのは、Oracle がドキュメントで推奨している JRE 1.1.6v5 に バージョンを下げたときでした。
指摘する価値のあることをあと2つ - 必ず JDK ではなく JRE を使うこと、 もう1つは、"green" スレッドを使うべきだということです。 THREADS_FLAG を 'native' と設定しないかぎりは、ほぼ確実に設定は正しいはずです。
ちゃんと GLIBC 2.1 を使ってますよね?
問題のエラーメッセージはこんな感じです -
error in loading shared libraries: libclntsh.so.8.0: cannot open shared object file: No such file or directory
これは、NT が DLL を見つけられないと文句を言っているのと同じです。 直すのはとても簡単です。もし B シェル風のシェルを使っているなら、 ".profile" の最後に次行を単純に追加します。 (何のことかわからなければ、身近の詳しい人に質問してみてください)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
また、C シェル風のシェルでは次行を使います。
setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH$ORACLE_HOME/lib"
私は C シェルを使わないので、実際にこのコマンドを確認していただけると ありがたいです。
答えにたどり着くまでしばらく問題を追跡してみる必要がありました。 もっとも一生懸命さがせば Oracle のウェブサイト自体に答えはあるのですが。
デフォルトのコンフィギュレーションでは、Pro*C はどこにすべてのライブラリが
あるのか知らないので、教えてあげる必要があります。インストールした後
$ORACLE_HOME/precomp/admin/pcscfg.cfg
は空ですが、次の項目を
記入する必要があります。
sys_include=(/home/oracle/precomp/public, /usr/include, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/, /usr/include, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include, /usr/include) include=(/home/oracle/precomp/public) include=(/home/oracle/rdbms/demo) include=(/home/oracle/network/public) include=(/home/oracle/plsql/public) ltype=short
(sys_include
から include)
までの最初の4行はファイルの
中ですべて同じ行に置くこと)
Oracle のドキュメントは触れていないのですが、
$ORACLE_HOME/precomp/lib/env_precomp.mk
も修正の必要が
あります。CCPSYSINCLUDE
を定義している行で、次のようにします。
CCPSYSINCLUDE=sys_include='($(ORACLE_HOME)/precomp/public, /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include, /usr/include/g++-2, /usr/include)'
RedHat 6.0 ならこれでいいのですが、他のディストリビューションや RedHat の新しいバージョンではすこしひねりが必要かもしれません。
これは、Oracle のドキュメントにほとんど書かれていないものの、 すべての製品やインストールプログラムに共通するやっかいな問題です。 この件に関しては、いいかげん Oracle に手を打ってもらわないと!
よく起こるのは次のようなことです - Oracle Enterprise Edition を インストールします。そして、Oracle の言う通り、そのままこんどは 手元にあるパッチをインストールします。それから、プリコンパイラが 必要だと決断して、同じ CD から Oracle Programmer をインストールします。
Pro*C をインストールする前はデータベースは動いていたのに、いまはもう 動きません。
問題は、インストールしたバージョンのプリコンパイラにはパッチが当たって おらず、Oracle サーバのコードの一部はその修正部分に依存している、という点に あります - Oracle のインストーラは愚かにも同じコードの新しいバージョンを 上書きしてしまうのです。
解決法はぱっとしません。CD から一つ一つのファイルを抜き出すことが できないので、全体をインストールしなおす必要があります。今度は、パッチの前に Oracle Programmer を追加するようにします。