Operating System - Linux
1821430 Members
3065 Online
109633 Solutions
New Discussion юеВ

perl issue during oracle patching

 
Mel Burslan
Honored Contributor

perl issue during oracle patching

I have received a call from one of our dba's accompanied by an email. He says his patchine which worked on machines with older perl versions is not working on this particular machine and wants me to install an older version of perl.

The system in question with problems has perl version 5.8.7. The systems which were successfully patched in the past month (he gave me two examples) have 5.6.1 and 5.8.0 versions of perl. I have hard time to believe that the perl version is to blame but neither being an oracle expert nor perl expert, I'd like to ask this question to those who have a better idea than myself, or to those who might have seen this issue before.

oracle patch to be applied is OPatch 2617419
oracle version is 920_64

error enccountered is :

$ORACLE_HOME/OPatch/opatch lsinventory
Can't locate loadable object for module POSIX in @INC (@INC contains: /oracle/CRD/920_64/OPatch/perl_modules /oracle/CRD/920_64/OPatch /usr/local/lib/perl5/5.8.7/PA-RISC2.0 /usr/local/lib/perl5/5.8.7 /usr/local/lib/perl5/site_perl/5.8.7/PA-RISC2.0 /usr/local/lib/perl5/site_perl/5.8.7 /usr/local/lib/perl5/site_perl .) at /oracle/CRD/920_64/OPatch/perl_modules/Apply.pm line 295
Compilation failed in require at /oracle/CRD/920_64/OPatch/perl_modules/Apply.pm line 295.
BEGIN failed--compilation aborted at /oracle/CRD/920_64/OPatch/perl_modules/Apply.pm line 295.
Compilation failed in require at /oracle/CRD/920_64/OPatch/perl_modules/Command.pm line 438.
BEGIN failed--compilation aborted at /oracle/CRD/920_64/OPatch/perl_modules/Command.pm line 438.
Compilation failed in require at /oracle/CRD/920_64/OPatch/opatch.pl line 90.
BEGIN failed--compilation aborted at /oracle/CRD/920_64/OPatch/opatch.pl line 90.


and oracle's knowledge base has this brilliant suggestion when the dba has searched for this error message:

Cause
The version of Perl supplied with Oracle HTTP Server in 9.2.0 on HPUX Itanium has some problems.
Solution
Choose one of the following solutions:
OPTION 1:
Download and install the patch for Bug 4261525. This will repair the perl that was installed in $ORACLE_HOME/Apache/perl
OPTION 2:
If another version of Perl is installed on the server (for example, in /usr/local/bin or /opt/perl/bin), use that instead. For example:
/usr/local/bin/perl $ORACLE_HOME/OPatch/opatch.pl lsinventory
/usr/local/bin/perl $ORACLE_HOME/OPatch/opatch.pl apply
The examples above assume that OPatch (Patch 2617419 on Metalink) has been downloaded and unzipped to $ORACLE_HOME/OPatch

And as you can see from the error message this is a PA-Risc machine (an rp3440 to be exact) not an itanium)

Any insight is greatly appreciated
________________________________
UNIX because I majored in cryptology...
8 REPLIES 8
H.Merijn Brand (procura
Honored Contributor

Re: perl issue during oracle patching

My first suggestion would be to check what

$ORACLE_HOME/Apache/perl

is. Is it a symbolic link? If so whereto?
Does that target is of the same object type as the rest of your env? (64bit vs. 32bit)

Are you able to move that link and replace it with a perl that *does* meet your needs?

# cd $ORACLE_HOME/Apache
# mv perl perl.org
# ln -s /opt/perl64/bin/perl perl

Then try again.
Of course, replace "/opt/perl64/bin/perl" with the real location of where the correct perl is installed

Then try

# $ORACLE_HOME/Apache/perl -MPOSIX -le'print $POSIX::VERSION'

That should work.

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Steven E. Protter
Exalted Contributor

Re: perl issue during oracle patching

Shalom,

My dba in the states ran into the same issue. We used the version of perl that shipped with the oracle apache web server.

Seems to be what merijn is saying.

We had the same error and either used that perl or downloaded a perl from Oracle and got around the issue.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Mel Burslan
Honored Contributor

Re: perl issue during oracle patching

the problem is, there is no perl installed there:

oracle 8> cd $ORACLE_HOME/Apache
oracle 9> ll
total 0
drwxr-xr-x 3 oracle dba 96 Mar 7 11:00 Jserv
drwxr-xr-x 3 oracle dba 96 Mar 7 10:59 modose


should I just make a symbollic link to my perl binary ?
________________________________
UNIX because I majored in cryptology...
Mel Burslan
Honored Contributor

Re: perl issue during oracle patching

And I just checked where he was able to install patches, i.e., other two servers and their $ORACLE_HOME/Apache directory is exactly the same as this one.

So, creating a symlink does not look like a solution to me.
________________________________
UNIX because I majored in cryptology...
H.Merijn Brand (procura
Honored Contributor

Re: perl issue during oracle patching

Creating the symlink is what option 1 suggests:

OPTION 1:
Download and install the patch for Bug 4261525. This will repair the perl that was installed in $ORACLE_HOME/Apache/perl

That option however does not say if that is to be the perl root folder or the perl binary

Try them in turn

# cd $ORACLE_HOME/Apache
# ln -s /opt/perl64 perl

or

# cd $ORACLE_HOME/Apache
# ln -s /opt/perl64/bin/perl perl

Enjoy, Have FUN! H.Merijn [ always out for the easiest working solution ]
Enjoy, Have FUN! H.Merijn
Mel Burslan
Honored Contributor

Re: perl issue during oracle patching

Merijn,

I am definitely missing something. I tried to run the perl command you mentioned towards the end of your reply and here's what I got in return (I used the perl on the default location as I did not have any special perl under where oracle note mentioned):

oracle 15> /usr/local/bin/perl -MPOSIX -le'print $POSIX::VERSION'
Can't locate loadable object for module POSIX in @INC (@INC contains: /usr/local/lib/perl5/5.8.7/PA-RISC2.0 /usr/local/lib/perl5/5.8.7 /usr/local/lib/perl5/site_perl/5.8.7/PA-RISC2.0 /usr/local/lib/perl5/site_perl/5.8.7 /usr/local/lib/perl5/site_perl .) at -e line 0
Compilation failed in require.
BEGIN failed--compilation aborted.
________________________________
UNIX because I majored in cryptology...
Mel Burslan
Honored Contributor

Re: perl issue during oracle patching

looks like the @INC is different in my two systems:

on the system where it worked before:

oracle 37> /usr/local/bin/perl -MPOSIX -le'print $POSIX::VERSION'
1.05


on the system where it is not working I am getting the error in my previous posting about not being able to find POSIX loadable module.

And POSIX module is at :

(failing system)
oracle 24> find /opt/perl/lib -name POSIX
/opt/perl/lib/5.8.0/PA-RISC1.1-thread-multi/auto/POSIX


(working system)
oracle 41> find /opt/perl/lib -name POSIX
/opt/perl/lib/5.8.0/PA-RISC1.1-thread-multi/auto/POSIX


One thing I noticed, even though both systems have the module under version 5.8.0 path, the failing system is running 5.8.7 version and my gut feeling is telling me (after looking at the failure messages) that the search path is getting created on the fly with the version and item it is looking for is not being found.



________________________________
UNIX because I majored in cryptology...
Mel Burslan
Honored Contributor

Re: perl issue during oracle patching

Found out that /usr/local/bin/perl was just a perl executable sitting like a duck on the problem system, whereas the other systems, it was a symlink to /opt/perl/bin/perl, where it had all the loadable modules under /opt/perl directory structure.

Thank for your help.
________________________________
UNIX because I majored in cryptology...