Ставим DBD::Oracle на Debian Etch

Для работы модуля DBD::Oracle помимо самого модуля нам понадобится Oracle Instant Client.
Идем на сайт oracle и скачиваем:
instantclient-basic-linux32-10.2.0.3-20061115.zip
instantclient-sdk-linux32-10.2.0.3-20061115.zip
instantclient-sqlplus-linux32-10.2.0.3-20061115.zip

Распаковываем файлы в какую либо директорию. В моем случае получилось так:

/opt/oracle/instantclient_10_2


После этого добавляем в .bashrc следующие переменные окружения

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/instantclient_10_2
export LD_LIBRARY_PATH=$ORACLE_HOME
export NLS_LANG=AMERICAN_CIS.CL8KOI8R
export PATH=${PATH}:$ORACLE_HOME

Затем делаем следующие ссылки

#cd opt/oracle/instantclient_10_2
#ln -s libclntsh.so.10.1 libclntsh.so
#ln -s libocci.so.10.1 libocci.so


Закачиваем исходники модуля DBD::Oracle:

#perl -MCPAN -e shell
cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')
cpan> get DBD::Oracle
cpan> quit


Скачиваем файл Makefile-instantclient.PL и сохраняем его в каталог с исходниками модуля (по умолчанию это /root/.cpan/build/DBD-Oracle-1.19 ). Скачиваем конфигурационный скрипт oracle-instantclient-config в директорию входящую в переменную PATH. Я сохранил его в /usr/bin/. После этого делаем его исполняемым и правим некоторые строчки:

prefix=/opt/oracle/instantclient_10_2
version=10.2.0.3

incdirs="-I${exec_prefix}/sdk/include"
libdirs="-L${exec_prefix}"


Устанавливаем необходимую библиотеку (возможно придется ставить еще какие-нибудь, но мне только эту :) ):

$sudo apt-get install libstdc++5

Под аккаунтом root идем в каталог с исходниками и собираем наш модуль:

#cd /root/.cpan/build/DBD-Oracle-1.19
#perl Makefile-instantclient.PL
...
#make
...
#make install

Вот и все! Модуль установлен!
Примечание. Так как не всегда удобно писать полную строку коннекта, можно брать данные из файла tnsnames.ora, который по умолчанию лежит в $ORACLE_HOME/network/admin/ либо указать в переменной TNS_ADMIN каталог с этим файлом