Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

'make uninstall' - manual uninstall DBD::Oracle; fix perllocal.pod

553 views
Skip to first unread message

Am Nym

unread,
May 20, 2012, 6:45:19 PM5/20/12
to

To save a build, I tarred the *good* (pre-install) build area
for DBD-Oracle on one host, then untarred it on 'ourdbserver02',
and ran a 'make install' which ran cleanly; but the
module fails to work.

GOAL: uninstall DBD::Oracle safely/cleanly on 'ourdbserver02'.

What is wrong w/deleting the list of files given by
'make uninstall' ( and deleting resulting empty dirs )?

Additionally I would manually edit:

/usr/opt/perl5/lib/5.8.8/aix-thread-multi/perllocal.pod

Am I missing anything?

--
thanks/regards,

--
More detail; "Uninstall is unsafe and deprecated" warning:

--snip/find suggests what was installed last Friday:
# ourdbserver02 root # find /usr/opt/perl5 -ctime -1 -type f
/usr/opt/perl5/lib/5.8.8/aix-thread-multi/perllocal.pod
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/GetInfo.pm
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/Object.pm
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/Troubleshooting.pm
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle.pm
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/Oraperl.pm
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/.packlist
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.bs
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.h
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/dbdimp.h
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/mk.pm
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/ocitrace.h
/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/oraperl.ph
/usr/opt/perl5/man/man3/DBD::Oracle.3
/usr/opt/perl5/man/man3/DBD::Oracle::GetInfo.3
/usr/opt/perl5/man/man3/DBD::Oracle::Object.3
/usr/opt/perl5/man/man3/DBD::Oracle::Troubleshooting.3
/usr/opt/perl5/man/man3/DBD::Oraperl.3
# 14:16:37 Fri 120518 0j 3 56426638 /usr/local/src/perl/alt/DBD-Oracle-1.44
# ourdbserver02 root # ( source setup-build-env ; make uninstall )

Uninstall is unsafe and deprecated, the uninstallation was not performed.
We will show what would have been done.

unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle.pm
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/GetInfo.pm
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/Object.pm
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/Troubleshooting.pm
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/Oraperl.pm
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.bs
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.h
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/dbdimp.h
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/mk.pm
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/ocitrace.h
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/oraperl.ph
unlink /usr/opt/perl5/man/man3/DBD::Oracle.3
unlink /usr/opt/perl5/man/man3/DBD::Oracle::GetInfo.3
unlink /usr/opt/perl5/man/man3/DBD::Oracle::Object.3
unlink /usr/opt/perl5/man/man3/DBD::Oracle::Troubleshooting.3
unlink /usr/opt/perl5/man/man3/DBD::Oraperl.3
unlink /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/.packlist

Uninstall is unsafe and deprecated, the uninstallation was not performed.
Please check the list above carefully, there may be errors.
Remove the appropriate files manually.
Sorry for the inconvenience.

# 14:18:23 Fri 120518 0j 3 56426638 /usr/local/src/perl/alt/DBD-Oracle-1.44
# ourdbserver02 root #

--
The host that contained the good build tree ( containing Makefile, the
module source etc ), had a 32 bit client installed. 'ourdbserver02'
just has the 64 bit server w/o any 32 bit client (lib32) directories.

--
log of the install:

# 13:54:18 Fri 120518 0j 3 56426638 /usr/local/src/perl/alt/DBD-Oracle-1.44
# ourdbserver02 root # ( source setup-build-env ; make install )
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.bs
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.h
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/dbdimp.h
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/mk.pm
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/ocitrace.h
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/Oraperl.pm
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/oraperl.ph
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle.pm
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/GetInfo.pm
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/Object.pm
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Oracle/Troubleshooting.pm
Installing /usr/opt/perl5/man/man3/DBD::Oracle.3
Installing /usr/opt/perl5/man/man3/DBD::Oracle::GetInfo.3
Installing /usr/opt/perl5/man/man3/DBD::Oracle::Object.3
Installing /usr/opt/perl5/man/man3/DBD::Oracle::Troubleshooting.3
Installing /usr/opt/perl5/man/man3/DBD::Oraperl.3
Appending installation info to /usr/opt/perl5/lib/5.8.8/aix-thread-multi/perllocal.pod

--snip
# 18:32:46 Sun 120520 0j 0 38469768 ~
# ourdbserver02 txr6 $ tail -25 /usr/opt/perl5/lib/5.8.8/aix-thread-multi/perllocal.pod

=back

=head2 Fri May 18 13:55:02 2012: C<Module> L<DBD::Oracle|DBD::Oracle>

=over 4

=item *

C<installed into: /usr/opt/perl5/lib/site_perl/5.8.8>

=item *

C<LINKTYPE: dynamic>

=item *

C<VERSION: 1.44>

=item *

C<EXE_FILES: >

=back

# 18:32:59 Sun 120520 0j 0 38469768 ~
# ourdbserver02 txr6 $

Message has been deleted

Ben Morrow

unread,
May 20, 2012, 7:38:40 PM5/20/12
to

Quoth Am Nym <xtd...@gmail.com>:
>
> To save a build, I tarred the *good* (pre-install) build area
> for DBD-Oracle on one host, then untarred it on 'ourdbserver02',
> and ran a 'make install' which ran cleanly; but the
> module fails to work.

You should at least have run 'make test' before 'make install'. What
were you trying to do?

> GOAL: uninstall DBD::Oracle safely/cleanly on 'ourdbserver02'.
>
> What is wrong w/deleting the list of files given by
> 'make uninstall' ( and deleting resulting empty dirs )?
>
> Additionally I would manually edit:
>
> /usr/opt/perl5/lib/5.8.8/aix-thread-multi/perllocal.pod
>
> Am I missing anything?

I don't think so.

> --
> The host that contained the good build tree ( containing Makefile, the
> module source etc ), had a 32 bit client installed. 'ourdbserver02'
> just has the 64 bit server w/o any 32 bit client (lib32) directories.

...well then that will be why it doesn't work. If you run 'ldd' (or
whatever the AIX equivalent is) on .../auto/DBD/Oracle/Oracle.so you
will see that it is dynamically linking libraries which aren't there.
You may, in fact, be able to make it work by copying across the relevant
libraries from the other machine, but it's probably better to start
again with a supported install of the client libs.

Ben

xtd...@gmail.com

unread,
May 20, 2012, 8:00:25 PM5/20/12
to
Thanks for your help, pls see answer below:

On Sunday, May 20, 2012 5:50:12 PM UTC-5, Michael Vilain wrote:
> In article <wro4nra...@mpttdph.xen.prgmr.com>,
> Define "Fails to work". Logs? Error messages? Test scripts? How does
> it fail (can't connect, hangs, seg faults, tells you to sod off)?

A coworker run the below test:

/home/users/jdoe> chk_db_connection.pl
install_driver(Oracle) failed: Can't load '/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: Could not load module /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so.
Dependent module libclntsh.so could not be loaded.
Could not load module libclntsh.so.
System error: No such file or directory
Could not load module /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so.
Dependent module /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so could not be loaded. at /usr/opt/perl5/lib/5.8.8/aix-thread-multi/DynaLoader.pm line 230.
at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected
at chk_db_connection.pl line 5

Oracle.o is in the good build tree:

# ourdbserver02 txr6 $ cd /usr/local/src/perl/alt/DBD-Oracle-1.44
# 19:46:43 Sun 120520 0j 1 39977124 /usr/local/src/perl/alt/DBD-Oracle-1.44
# ourdbserver02 txr6 $ ls -l *.o
-rw-r--r-- 1 root system 96867 May 10 09:46 Oracle.o
-rw-r--r-- 1 root system 150267 May 10 09:46 dbdimp.o
-rw-r--r-- 1 root system 147053 May 10 09:46 oci8.o

--
On the host where the build, the 'make test', the install, and the real world
use of DBD::Oracle all worked, Oracle.o is also *not* in:

/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle

Take a look:

# 19:48:36 Sun 120520 0j 3 7536878 /usr/local/src/perl/DBD-Oracle-1.44
# ourappserver02 txr6 $ find /usr/opt/perl5 -name Oracle.o
/usr/opt/perl5/build/DBD-Oracle-1.44/Oracle.o
--snip
# 19:55:08 Sun 120520 0j 1 39977124 ~
# ourdbserver02 txr6 $ find /usr/opt/perl5 -name Oracle.o
# 19:55:13 Sun 120520 0j 1 39977124 ~
# ourdbserver02 txr6 $

So, at the very least ourdbserver02 is missing Oracle.o. I suppose I could
manually copy it in, but what else might be missing?

In addition, there is the 'libclntsh.so' issue..

###
Keep in mind, I what to learn how to do the uninstall, that is my goal.

Ben Morrow

unread,
May 20, 2012, 8:41:57 PM5/20/12
to

Quoth xtd...@gmail.com:
>
> /home/users/jdoe> chk_db_connection.pl
> install_driver(Oracle) failed: Can't load
> '/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so'
> for module DBD::Oracle: Could not load module
> /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so.
> Dependent module libclntsh.so could not be loaded.
> Could not load module libclntsh.so.
> System error: No such file or directory
> Could not load module
> /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so.
> Dependent module
> /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so
> could not be loaded. at
> /usr/opt/perl5/lib/5.8.8/aix-thread-multi/DynaLoader.pm line 230.
> at (eval 3) line 3
> Compilation failed in require at (eval 3) line 3.
> Perhaps a required shared library or dll isn't installed where expected
> at chk_db_connection.pl line 5
>
> Oracle.o is in the good build tree:

Oracle.o is irrelevant: it's created by the build process, but can be
deleted afterwards. The messages above refer to Oracle.so, which is
installed; they are telling you Oracle.so can't be loaded because
libclntsh.so is missing, which is presumably one of the Oracle client
libaries.

> In addition, there is the 'libclntsh.so' issue..

That is the only issue; you don't have 32bit Oracle client libs
installed on this machine.

Ben

Hans Mulder

unread,
May 21, 2012, 2:02:36 AM5/21/12
to
I have no experience with AIX, but I've done something similar on
Linux onec. If I remember correctly, libclntsh.so it the only .so
file you need, but you also need a number of data files. Without
the data files, you'll get a crypric error code (which means that
it can't find your character encoding), followed by another cryptic
error code (which means that it can't find the error messages either).

If AIX has something like strace or truss, you can use that to
find out which files it is trying to open, and copy those.

>> In addition, there is the 'libclntsh.so' issue..
>
> That is the only issue; you don't have 32bit Oracle client libs
> installed on this machine.

Last time I looked, the Instant Client could be downloaded for free
from Oracle.com.

Hope this helps,

-- HansM



Am Nym

unread,
May 21, 2012, 9:58:04 AM5/21/12
to
Ben Morrow <ben -at- morrow -dot- me -dot- uk> writes:

> Quoth xtdkmqc-at-gmail-dot-com:
>>
>> /home/users/jdoe> chk_db_connection.pl
>> install_driver(Oracle) failed: Can't load
>> '/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so'
>> for module DBD::Oracle: Could not load module
>> /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so.
>> Dependent module libclntsh.so could not be loaded.
>> Could not load module libclntsh.so.
>> System error: No such file or directory
>> Could not load module
>> /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so.
>> Dependent module
>> /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Oracle/Oracle.so
>> could not be loaded. at
>> /usr/opt/perl5/lib/5.8.8/aix-thread-multi/DynaLoader.pm line 230.
>> at (eval 3) line 3
>> Compilation failed in require at (eval 3) line 3.
>> Perhaps a required shared library or dll isn't installed where expected
>> at chk_db_connection.pl line 5
>>
>> Oracle.o is in the good build tree:
>
> Oracle.o is irrelevant: it's created by the build process, but can be
> deleted afterwards.

Sorry, I mis-read Oracle.so as Oracle.o!

> The messages above refer to Oracle.so, which is
> installed; they are telling you Oracle.so can't be loaded because
> libclntsh.so is missing, which is presumably one of the Oracle client
> libaries.
>
>> In addition, there is the 'libclntsh.so' issue..
>
> That is the only issue; you don't have 32bit Oracle client libs
> installed on this machine.

thanks much Ben.
0 new messages