* Chris Benson ([email protected]) [110822 21:29]: > On Mon, Aug 22, 2011 at 05:17:07PM +0100, Paul Branon wrote: > > Hi Guys, > > > > Does anyone know where I can get help getting oracle DBD to work? I'm on > > Intel Solaris 10 > > and Oracle comes with an AMD64 binary. It runs fine on my system. I can > > connect to oracle > > with no problems at all. Then I install oracle DBD which installs just fine > > But when I try to > > connect to the database I get wrong ELF class. Because libclntsh.so.10.1 is > > a 32 bit binary. > > Uhm for my sins, I've got: > root@selfservice:/usr/local # uname -a > SunOS selfservice 5.10 Generic_142901-07 i86pc i386 i86pc > oot@selfservice:/usr/local # file > /usr/local/oracle/product/instantclient_10_2/libclntsh.so.10.1 > /usr/local/oracle/product/instantclient_10_2/libclntsh.so.10.1: ELF 32-bit > LSB dynamic lib 80386 Version 1, dynamically linked, not stripped > root@selfservice:/usr/local # > > ... and I think what makes it possible: > root@selfservice:/usr/local # file /usr/local/bin/perl > /usr/local/bin/perl: ELF 32-bit LSB executable 80386 Version 1 [FPU], > dynamically linked, not stripped, no debugging information available > root@selfservice:/usr/local # > > Which was either from sunfreeware.com or locally built. > > On some SPARC systems where there's a full 64bit Oracle installed, I've > resorted to ensuring that I've set > ORACLE_HOME=/export/home/oracle1020/product/1020/client_1/ > LD_LIBRARY_PATH=$ORACLE_HOME/lib32 > export ORACLE_HOME LD_LIBRARY_PATH > before starting or where I can't/don't trust the environment to: > BEGIN { > # needs to before loading the DB modules > $ENV{ORACLE_HOME} ||= '/export/home/oracle1020/product/1020/client_1'; > # LD_LIBRARY_PATH needed because we're on a 64bit Oracle now > $ENV{LD_LIBRARY_PATH} ||= > "$ENV{ORACLE_HOME}/lib32:$ENV{ORACLE_HOME}/network/lib32"; > } > But again this is with a 32-bit Perl. > # file /usr/local/bin/perl > /usr/local/bin/perl: ELF 32-bit MSB executable SPARC Version 1, > dynamically linked, not stripped > > > I guess what I need is literally the answer. > > Install a 32-bit Perl has been my solution. I'll need to look at > this again soon for the next technology refresh though :-/ > > I'm hoping it won't be as irritating on RHEL/OUL, but my first attempts > to setup an application server for Oracle 11g ended up rebuilding the > whole system as 32-bit because the application vendor had linked their > app against a 32-bit libclntsh and 32-bit Oracle 11g won't install on a > 64-bit o/s ... >
Looking at http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html, Oracle provides Solaris x86 and Solaris x86-64 builds of the instant client. > HTH > -- > Chris Benson Simon Matthews
