- PR -

Perl5.8.8+Oracle9iのDBDについて

1
投稿者投稿内容
なんでも屋
常連さん
会議室デビュー日: 2004/11/17
投稿数: 20
投稿日時: 2006-07-03 11:23
こんにちは。
Solaris8上にPerl5.8.8+Oracle9iでイントラ用Webアプリを構築中です。
元々はSolaris8上でPerl5.005_03+Sybase11.5.1で動いていたものの移植作業です。

PerlとOracleの接続のためにDBI-1.51とDBD-Oracle-1.17を使用しようとしています。
DBIはすんなりインストール出来たのですが、DBDのmakeの際に以下のエラーが発生します。
(make時に表示される内容をすべて載せました)
----------------------------------------
hoge01% make
/opt/SUNWspro/bin/cc -c
-I/home/hoge/app/oracle/product/9.2/rdbms/demo
-I/home/hoge/app/oracle/product/9.2/rdbms/public
-I/home/hoge/app/oracle/product/9.2/rdbms/demo
-I/home/hoge/app/oracle/product/9.2/rdbms/public
-I/home/hoge/app/oracle/product/9.2/plsql/public
-I/home/hoge/app/oracle/product/9.2/network/public
-I/usr/local/lib/perl5/site_perl/5.8.8/sun4-solaris/auto/DBI
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O
-DVERSION=\"1.17\"
-DXS_VERSION=\"1.17\"
-KPIC "-I/usr/local/lib/perl5/5.8.8/sun4-solaris/CORE"
-DUTF8_SUPPORT
-DNEW_OCI_INIT
-DORA_OCI_VERSION=\"9.2.0.1\" Oracle.c
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
/opt/SUNWspro/bin/cc -G -L/usr/lib -L/usr/ccs/lib
-L/opt/SUNWspro/prod/lib/v8plus
-L/opt/SUNWspro/prod/lib -L/lib -L/opt/gnu/lib
Oracle.o dbdimp.o oci8.o cc -Xa -xstrconst -xF -xarch=v8 -xchip=ultra
-W2,-AKNR_S -W2,-Rglobal_hoist -Wc,-Qdelay-speculate
-Wc,-Qdepgraph-safe_spec_load=3 -W2,-Rloop -errtags=yes
-v -K PIC -L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib
-L/home/hoge/app/oracle/product/9.2/rdbms/lib32/
-L/home/hoge/app/oracle/product/9.2/lib32/
-lclntsh `cat /home/hoge/app/oracle/product/9.2/lib32/ldflags` `cat /home/hoge/app/oracle/product/9.2/lib32/sysliblist`
-R/home/hoge/app/oracle/product/9.2/lib32 -laio -lposix4 -lkstat -lm
-lthread -o blib/arch/auto/DBD/Oracle/Oracle.so \
\
ld: 重大なエラー: ファイル cc: open に失敗しました: ファイルもディレクトリもありません。
ld: 重大なエラー: ファイル処理エラー。blib/arch/auto/DBD/Oracle/Oracle.so へ書き込まれる出力がありません。
*** Error code 1
make: Fatal error: Command failed for target `blib/arch/auto/DBD/Oracle/Oracle.so'
-----------------------------------------
対処方法をご存知の方がいらっしゃいましたらご教授の程よろしくお願い致します。
なんでも屋
常連さん
会議室デビュー日: 2004/11/17
投稿数: 20
投稿日時: 2006-07-04 16:51
今後同じ事で悩む人の為に自己レスです。
今回の対処方法が正しいのか不明ですが参考にして下さい。

失敗している最後のccのライブラリ参照が存在するか一つずつ確認しました。
すると /opt/SUNWcluster/lib が存在していなかったので、Makefileの中から -L や -Rで指定されている /opt/SUNWcluster/lib の記述を全て削除しました。

この状態でmakeすると ccがどうのこうの(失念・・・)というエラーが発生しました。エラーの発生している箇所を見ると、1命令の中に cc の記述があったので、思い切って削除しました。

一つ目の投稿にある
Oracle.o dbdimp.o oci8.o cc -Xa -xstrconst -xF -xarch=v8 -xchip=ultra
の部分のcc

そうすると make が通り、make test も、rootでのmake installもエラーは発生せずにインストールする事ができました。
また、テストで作ったPerlからのアクセスも成功しました。
今回はこれで解決したことにしたいと思います。

もし何か気になることなどございましたら、追記の程よろしくお願い致します。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)