On 21/11/11 16:48, Jess Portnoy wrote:
Hello list,
I used the following RPMs by Oracle:
oracle-instantclient11.2-basic-11.2.0.2.0-1
oracle-instantclient11.2-devel-11.2.0.2.0-1
Install sqlplus because I believe without it the Makefile.PL will struggle to
find the version of your client and without that you may end up with the
default v8 only support missing loads of stuff out.
Which can be downloaded from here:
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
Below, is the output I got. In bold are message strings I have comments
on.
Thanks,
Installing on a linux, Ver#2.6
Using Oracle in /usr/lib/oracle/11.2/client64
Can't find sqlplus. Pity, it would have helped.
Jess: sqlplus actually did exist on this machine but since the Oracle
installation [not done via an RPM], only configures the ENV for use of
the 'oracle' user, sqlplus was not in the PATH. Not much you can do
about this of course.. maybe prompt for the PATH?
Install sqlplus package from the same place as the instant client - the minimum
packages to install which will work flawlessly are:
basic
sdk
sqlplus
It is irrelevant where any sqlplus is in your main Oracle install - DBD::Oracle
only wants sqlplus to discover the version of the client libs. It does not need
to be on your path as the Makefile.PL will work it out based on where you
pointed LD_LIBRARY_PATH.
Forcing Oracle version to be treated as 11.2.0.2
Oracle version 11.2.0.2 (11.2)
Found /usr/share/oracle/11.2/client64/demo.mk
Using /usr/share/oracle/11.2/client64/demo.mk
Your LD_LIBRARY_PATH env var is set to ':/usr/lib:/usr/local/lib'
WARNING: Your LD_LIBRARY_PATH env var doesn't include
'/usr/lib/oracle/11.2/client64/lib' but probably needs to.
Jess: this is not strictly true. What I usually do is:
# cat /etc/ld.so.conf.d/oracle
/usr/lib/oracle/11.2/client64/lib
In my opinion, placing the oracle.conf file under /etc/ld.so.conf.d and
running ldconfig is cleaner then just adding to LD_LIBRARY_PATH in some
bashrc or profile file.
I'm not saying the message should be omitted altogether but perhaps
changed?
What you prefer to do is fine but if you want DBD::Oracle to build without
those warnings you need to tell it where to find the instant client and the way
you do that right now is to set LD_LIBRARY_PATH. Alternatively, you can use -m,
-h but I've never done that myself.
Reading /usr/share/oracle/11.2/client64/demo.mk
WARNING: Oracle /usr/share/oracle/11.2/client64/demo.mk doesn't define a
'build' rule.
WARNING: I will now try to guess how to build and link DBD::Oracle for
you.
This kind of guess work is very error prone and Oracle-version
sensitive.
It is possible that it won't be supported in future versions of
DBD::Oracle.
*PLEASE* notify dbi-users about exactly _why_ you had to build
it this way.
Jess: and this is my notifying you guys :)
Found header files in /usr/include/oracle/11.2/client64.
Yes, you are the second person recently to do this and there is an rt
(https://rt.cpan.org/Ticket/Display.html?id=72471) mentioning it too - thank
you. The message above is a hang over from the past. The problem is that
DBD::Oracle's Makefile.PL is probably one of the largest Makefile's on CPAN
with years and years of history, workarounds and twiddles for years of Oracle
changes. I guess we need to edit that message in some way now to avoid it.
client_version=11.2
DEFINE= -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"11.2.0.2\"
-DORA_OCI_102 -DORA_OCI_112
Thanks for taking the time to report it.
Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com