【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

mywkfmnrのホームページ

フリーページ

お気に入りブログ

ブログ見に行くのに… CPU4Eduさん

源氏物語の世界 jooxさん
一日一冊:読書日記… 本のソムリエさん
2004年04月10日
XML
カテゴリ:カテゴリ未分類
この実験は2004年8月に成功しています。
以下は、なぜKNOPPIXでOracleなのかという点と2004年4月に失敗したときの苦労話です。
googleで検索してこのページに来ても、成功した記事になかなかたどり着けないようなので更新しました。(2005/4/2更新)

結果から言うと、うまくいかなかったのですが、実験してみたので、とりあえず、報告します。

OracleとKNOPPIX、非常にちぐはぐな取り合わせですね。普通に考えると、そんな取り合わせにどんな意味があるのと思われそうなので、まず、その辺から。

データベースを業務で使う場合、Oracleだと、これまでは最低でも数十万円かかりました。今月発売されたばかりのOracle 10gでは、最低価格は大幅に値下げされたので、10万円割れからOracleを選択できるようになりましたが、それでも、無償でインストール不要の簡単Linuxが売りのKNOPPIXには釣合いませんよね。KNOPPIXならMySQLかPostgreSQLを選ぶのが普通です。

しかし、Oracleをインストールする目的にはもう一つあります。台数的にはその方が多いかもしれません。それは、開発・評価目的のOracleです。

開発するデータベースが大きなものになってくれば、それにつれて、開発に携わる人、部署、事業所も増えてきます。
そんなとき、開発用のOracleサーバは、たぶん、部署ごとに別々に持つことになるはずです。
というのは、開発の初期段階(単体テスト~連動テスト)や、本番開始後の保守段階では本番用のデータベースには接続できないのが普通だからです。それでも、開発・テスト・調査などのためにデータベースが必要になるので、手元のあり合わせのマシンに本番用と同じバージョンのOracleをインストールして使うわけです。

以前は、このような開発・評価などを目的とする場合にも、製品版を購入する必要があるとされていました。それが数年前から変わってきました。開発ライセンスが無償~低価格で配布されるようになってきたのです。開発ライセンスというのは、開発・テスト・評価・調査などの目的に限定して使用を認めるというもので、配布されるCDに入っているパッケージは製品と全く同じものでした。体験版に良くありがちな使用期間制限や機能制限などはありません。私が初めて開発ライセンスを入手したのは、1999年秋にiDevelop1999というOracle主催のコンファレンスで参加者に無償配布されたときでした。当時のOracleの最上位エディションの開発ライセンスを入手できました。
現在は、OTN有償会員(約3万円/3ヶ月)になると、現在のOracleの全製品の開発ライセンスを入手できますし、今月発売されたばかりのOracle 10gなら、5月末までのキャンペーン期間中に申し込めば、わずか3千円で最上位エディションの開発ライセンスを入手できます。

このようにしてライセンスの問題が解決すると、次に問題になるのは、それをインストールするマシンです。
Oracleはこの数年間に非常に沢山のバージョンを発表してきました。Oracle 8以降だけでも、以下のような状況です。
・Oracle 8 : 8.0.3、8.0.4、8.0.5、8.0.6
・Oracle 8i : 8.1.5、8.1.6、8.1.7
・Oracle 9i : 9.0.1、9.2.0
・Oracle 10g: 10.1.0
これだけ、いろんなバージョンが矢継ぎ早に出てくると、同じバージョンのOracleを2度以上使うのはめずらしいケースになります。
結局、現状では以下のどれかを選んで対応することになります。
(1)新しいマシンを調達して新しいOracleをインストールする。(滅多に無い)
(2)古いマシンの古いOracleを削除して新しいOracleをインストールする。(よく失敗する。ひどいときはシステムごと再インストールしたことも。また、複数プロジェクトでの共有は困難。)
(3)古いマシンに複数のOracleをインストールし、必要に応じて選択して起動する。(ディスク領域の手当てと、開発プロジェクト間の調整が必要。)
(4)古いマシンの古いOracleを使い続ける。(新バージョンの新機能は使わず、無視する)

私の場合は、このうち(3)か(4)になることが多いです。

さて、ここからが本題。もし、KNOPPIXにOracleがインストールされていたらどうでしょう。サイズ的にCDブートは無理ですが、DVDブートかFAT32ブートならOK。データベースファイルとスワップを確保するためにFAT32パーティションは必要になりますが、メモリが128MB以上搭載され、FAT32パーティションに2~3GB程度の空きを確保できるという条件だけなら、意外に多くのマシンが使用できそうです。もっとも、メモリ128MB以上で使えるのはOrcale 8iまでの話で、Oracle 9i/10gは512MB以上のメモリが必要になりますが、デスクトップPCなら、空いているマシンからメモリを集めてくるなどにより、何とかなりそうです。

最近は事務用PCと実験用PCの2台のパソコンを一人で扱う場合も多くなってきました。実験用PCの方には多くの開発ツールと一緒に大抵Oracleクライアントなども入っています。しかし、この実験用PCにOracleサーバをインストールしようという話になると、ちょっと身構えてしまいます。新たにWindows 2000 ServerやMiracle Linuxなどをインストールするとこれまでに揃えた各種開発ツールが使えなくなってしまいますし、いつものWindowsにインストールするのは、上に上げた理由や、他にもいくつか理由があり、好ましくないのです。

反面、事務用PCにOracleをインストールする方には可能性があります。開発や実験の間は、事務用PCは空いているので一時的に転用できる可能性があるからです。もっとも、Oracleを事務用マシンのいつものWindowsにインストールするとか、新たにWindows 2000 ServerやMiracle Linuxなどを事務用マシンにインストールするというと、やはり身構えてしまいますが、KNOPPIXなら、FAT32パーティションに数GB程度の空きを確保し、そこにいくつかのファイル(cloopファイル、継続的ホームディレクトリファイル、スワップファイル、パッチファイルなど)をコピーして置くだけで良いので、現実味を帯びてきます。
他にも、同様な理由で、KNOPPIXで使うなら使っても良いというマシンは出てきそうです。

そこで、本当にKNOPPIXにOracleをインストールできないだろうかと思って始めた実験がこれです。
KNOPPIXにOracleをインストールする場合、大きく次の2つのケースがあると考えます。

(ケース1)cloopファイルは産総研製のものをそのまま使い、Oracleのプログラムとデータベースは継続的ホームディレクトリにインストールする。
(ケース2)cloopファイルにOracleのプログラムもインストールしてあり、継続的ホームディレクトリにはOracleのデータベースだけをインストールする。

使う立場では、(ケース2)の方が使い易いのですが、とりあえず実験してみるには(ケース1)の方が簡単なので、今回は(ケース1)で実験しました。
#もうひとつ、KNOPPIXをHDにインストールして使う方法があるといわれそうですが、HDにインストールするなら、Miracle Linuxなど、もっと良いLinuxがあるので、ここでは考えないことにします。

現在、私がOracleの開発ライセンスを持っているのは、Linux版ではOrcale 8i 8.1.6と8.1.7だけなのと、テスト機がノートパソコンで、メモリが384MBしかないことから、今回は8.1.7を使うことにしました。

次にインストール方法ですが、「Oracle8i for Linux Intel インストレーション・ガイド リリース8.1.7」を読むと、カーネルの再構成が必要になるように書かれています。私は昨年5月ごろ、FAT32ブートのままカーネルの再構成に挑戦して失敗しています。なぜ失敗したのか、ある程度分かってきたので、いずれ機会を見て再挑戦しようとは考えていました。しかし、今回、それをやらなければいけないとすると、うまくいくのか、少々不安でした。

そんなとき「Oracle8i R8.1.7 for Linux スタートガイド」を知り、そちらには、カーネルの再構成をしないで済ます方法が解説されていました。そこで、今回の実験では、このスタートガイドにそってインストールしました。このスタートガイドどおりにならない点は、以下の通りです。
(1) KNOPPIXではKDEを別のアカウントでログインしなおすというのが容易ではないので、スタートガイドに書かれているユーザ名・グループ名の追加はせず、「knoppix」をそのまま使用しました。(ユーザ名・グループ名共)
(2) JDK 1.1.8はBlackdown のFTP サイトからダウンロードしましたが、そのURLは少し異なっていました。
(3) ORACLE_BASEなどの環境変数の設定を追加するのは、「.bash_profile」ではなく「.bashrc」になります。
(4) ORACLE_BASEの位置は、継続的ホームディレクトリ内に確保するため、「/u01/app/oracle」⇒「/home/knoppix/oracle」に変更しました。
(5) インストール作業の途中で実行する構成スクリプト「root.sh」では、awkのフルパス名が/bin/awkになっていましたが、KNOPPIXでは/usr/bin/awkなので、このroot.shをkwriteなどのエディタで修正する必要があります。

以上のようにすることで、しばらくの間は、おおむね順調にインストールが進んでいきました。しかし、ある程度進んで構成スクリプト「root.sh」の実行を促すメッセージを表示する直前あたりで、makeがエラーになり、止まってしまいました。そのときのmakeのログの最後の部分は以下のようになっていました。
$ cd /home/knoppix/oracle/product/8.1.7/rdbms/lib
$ /usr/bin/make -f ins_rdbms.mk install ORACLE_HOME=/home/knoppix/oracle/product/8.1.7
chmod 755 /home/knoppix/oracle/product/8.1.7/bin
rm -f oracle ・・・
- Linking Oracle
rm -f /home/knoppix/oracle/product/8.1.7/rdbms/lib/oracle
gcc -o /home/knoppix/oracle/product/8.1.7/rdbms/lib/oracle ・・・(1159桁の長いコマンドライン)
/home/knoppix/oracle/product/8.1.7/lib//libdbicx8.a(sndwutl.o)(.text+0x1307): In function `sndwugtf_get_temp_file':
: warning: the use of `tempnam' is dangerous, better use `mkstemp'
/home/knoppix/oracle/product/8.1.7/lib//libpls8.a(spssimb.o)(.text+0x303): In function `pss_gets':
: warning: the `gets' function is dangerous and should not be used.
/usr/bin/ld: /home/knoppix/oracle/product/8.1.7/rdbms/lib/oracle: hidden symbol `__fixunssfdi' in /KNOPPIX/usr/bin/../lib/gcc-lib/i486-linux/3.3.3/libgcc.a(_fixunssfdi.oS) is referenced by DSO
collect2: ld はステータス 1 で終了しました
make: *** [/home/knoppix/oracle/product/8.1.7/rdbms/lib/oracle] エラー 1

なぜエラーになるのか、まだ原因は分かっていませんが、使用しているgccのバージョンの問題かもしれません。
Red Hat Linux 7.1に対して適用するパッチの解説を読んでみると、glibcなど、いくつかのライブラリは、Red Hat Linux 6.2互換の古いもの(glibc-2.1.3など)をインストールしないといけないそうです。より新しいLinuxには未対応になので、KNOPPIXのような最新のLinuxにインストールするのは無理があるのかもしれません。
結局、このエラーを解決することが出来ず、ここで中断しているのが現状です。


過去のKNOPPIX関連日記一覧はこちら

KNOPPIX実験室







お気に入りの記事を「いいね!」で応援しよう

最終更新日  2005年04月02日 11時13分20秒
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
別の画像を表示
上の画像で表示されている数字を入力して下さい。


利用規約に同意してコメントを
※コメントに関するよくある質問は、こちらをご確認ください。


PR


© Rakuten Group, Inc.