Perl DBD::Oracle Module installation

  • Install if missing ExtUtils-MakeMaker module (sudo yum install perl-ExtUtils-MakeMaker)
  • Install Perl DBI module ($ yum install perl-DBI)
  • Manually install below three RPMs for Oracle instant client (from Instant Client Downloads for Linux x86-64. The example is for v11.2.0.3.0-1: adapt the commands below to the actual version.)

    oracle-instantclient11.2-basic-11.2.0.3.0-1
    oracle-instantclient11.2-devel-11.2.0.3.0-1
    oracle-instantclient11.2-sqlplus-11.2.0.3.0-1
    

I am using 64 bit Linux box, so select your RPM filenames accordingly. Something like sudo yum -y install oracle-instantclient*rpm should do)

  • set below variables:

    export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
    export ORACLE_HOME=/usr/lib/oracle/11.2/client64
    

    MacOS users will need:

    DYLD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/
    

    Also add ORACLE_HOME to your PATH variable.

  • download DBD::Oracle from CPAN

  • untar the module and run below commands in given sequence:

    perl Makefile.PL
    make
    sudo make install
    

In case you get complaints about missing gcc you can (temporarily) install it and then remove it.

DONE !!!

Issues I had faced were due to the wrong LD_LIBRARY_PATH. I had set it to /usr/lib/oracle/11.2/client64 whereas the correct value is /usr/lib/oracle/11.2/client64/lib.

Certainly, this was a great learning for a newbie like me.


you can also read my article How to install DBD::Oracle which contains all the steps required to install DBD::Oracle CPAN module, which is not a straightforward installation. The purpose is to reduce headache and turn it into a repeatable process.


Here's what I did on CentOS 7.2 using yum packages and CPAN. This assumes you're using Oracle version 12.1 but I would imagine most versions will work this way.

Install Oracle Instant Client

yum install oracle-instantclient12.1-basic-12.1.0.2.0-1 oracle-instantclient12.1-devel-12.1.0.2.0-1 oracle-instantclient12.1-sqlplus-12.1.0.2.0-1

Copy demo make files

The install expects the *.mk file to be in /usr/share/oracle/12.1/client64 but the yum package install puts them in /usr/share/oracle/12.1/client64/demo.

sudo cp /usr/share/oracle/12.1/client64/demo/* /usr/share/oracle/12.1/client64

Modify .bashrc

Add the following lines to your ~/.bashrc

export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
export PATH=$ORACLE_HOME:$PATH

Now source the file

source ~/.bashrc

Update CPAN and DBI

Update CPAN and DBI to the latest

cpan> install CPAN
cpan> reload cpan
cpan> install DBI

Install DBD::Oracle

cpan> install DBD::Oracle

Tags:

Oracle

Perl