DBD::Oracleをインストール

DBD::Oracleをインストールしました。必要なものは

  • DBD::Oracle本体
  • Oracleクライアント
  • Oracleのヘッダファイルと*.mkファイル少々

の三つ。Oracleは11.1,Perlは5.8.8,OSはSolaris10です。

Oracleクライアントを入手

今回実施した環境はSolarisなので、Solaris用のクライアントを入手します。ここhttp://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/solsoft.html
からダウンロード。
展開するとこんなファイルがあります。

$ ls
BASIC_README       libclntsh.so.11.1  libociei.so        ojdbc6.jar
adrci              libnnz11.so        libocijdbc11.so
genezi             libocci.so.11.1    ojdbc5.jar

これらライブラリをLD_LIBRARY_PATHで見えるところにコピー。

# cp * /usr/local/lib

あとでclntsh.soがないって言われるので、リンクをつくっておく。

# cd /usr/local/lib
# ln -s libclntsh.so.11.1 libclntsh.so

Oracleのヘッダファイルと*.mkファイル

OracleDBがインストールされたサーバから持ってきます。
必要なもの*1は次のファイル。

$ORACLE_HOME/rdbms/public/ort.h
$ORACLE_HOME/rdbms/public/orid.h
$ORACLE_HOME/rdbms/public/oratypes.h
$ORACLE_HOME/rdbms/public/oci.h
$ORACLE_HOME/rdbms/public/ociap.h
$ORACLE_HOME/rdbms/public/nzt.h
$ORACLE_HOME/rdbms/public/ori.h
$ORACLE_HOME/rdbms/public/orl.h
$ORACLE_HOME/rdbms/public/nzerror.h
$ORACLE_HOME/rdbms/public/oci1.h
$ORACLE_HOME/rdbms/public/ocidfn.h
$ORACLE_HOME/rdbms/public/ociapr.h
$ORACLE_HOME/rdbms/public/oci8dp.h
$ORACLE_HOME/rdbms/public/ociextp.h
$ORACLE_HOME/rdbms/demo/demo_rdbms32.mk
$ORACLE_HOME/rdbms/lib/env_rdbms.mk
$ORACLE_HOME/rdbms/lib/ins_rdbms.mk

これをtarにでもしてDBD::Oracleをインストールしようとするサーバへ持ってきて、適当なところへ展開。

# cd /usr/local/
# tar -zvf /tmp/file.tar

展開したところをORACLE_HOMEとして環境変数に設定。

$ export ORACLE_HOME=/usr/local

DBD::Oracleをインストール

CPANから探してダウンロード。最新版は1.22。展開してmakeなど。

$ cd DBD-Oracle-1.22
$ /usr/local/bin/perl Makefile.PL
$ /usr/local/bin/make
# /usr/local/bin/make install

*1:というか、試行錯誤してこれだけあればDBD::Oracleがつくれるとわかったもの