Simpler Navigation for Servers and Operating Systems - Please Update Your Bookmarks
Completed: a much simpler Servers and Operating Systems section of the Community. We combined many of the older boards, so you won't have to click through so many levels to get at the information you need. Check the consolidated boards here as many sub-forums are now single boards.
If you have bookmarked forums or discussion boards in Servers and Operating Systems, we suggest you check and update them as needed.
Showing results for 
Search instead for 
Did you mean: 

Can not use proc after patched oracle client to

Go to solution
MA Qiang
Regular Advisor

Can not use proc after patched oracle client to

The error is as follows:
> proc
/usr/lib/pa20_64/ Unable to find library ''.

When I add two environment variables in the .profile, then it works.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib
export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib

But it works without the two environment variables before patched.

Who can tell me the reason about it?

Indira Aramandla
Honored Contributor

Re: Can not use proc after patched oracle client to

Hi Qiang,

The problem is because the programs are setuid and setgid. This turns off library path search see man ld on page 29 (extract below

Some restrictions exist for 64-bit mode with executables built with shared libraries and with S-bit set (through +s enabled). The behavior of 64-bit executables does not match the behavior of equivalent 32-bit executables or executables built with +compat. For any setuid or setgid programs, dld disables any dynamic library searching through environment variables, SHLIB_PATH for 32-bit and 64-bit mode, and LD_LIBRARY_PATH for 64-bit mode. If a library only exists in the directory specified in SHLIB_PATH (or LD_LIBRARY_PATH), you get the runtime error "library not found" if the program is a setuid program (that is, uid not equal to euid or gid not equal to eguid) and it depends on that library. dld uses the dynamic path lookup (with SHLIB_PATH) only if the following conditions are satisfied: getuid () == geteuid () && getgid () == getegid (). That is, if the uid or gid does not match its effective counterpart, dld
searches only the recorded library path. As a result, dld does not check the SHLIB_PATH which causes the runtime error "library not found".


I hope this helps

Indira A
Never give up, Keep Trying
Honored Contributor

Re: Can not use proc after patched oracle client to


according to metalink note: 284670.1 (which is applicable to a previous patch), 32bit version does not get rebuild.

It affects 9i R1 (9.0.1) and 9i R2 (9.2) and 10G R1 (10.1) and have been fixed in and

According to the note, the following environment variables are important too:
$LD_LIBRARY_PATH - includes $ORACLE_HOME/lib, but not $ORACLE_HOME/lib32

$SHLIB_PATH - includes $ORACLE_HOME/lib32, but not $ORACLE_HOME/lib

So, i believe the fixes brought along with the new patch is causing the problem you have described above.

Hence, you always need the two environment variable defined.

hope this helps too!
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)
MA Qiang
Regular Advisor

Re: Can not use proc after patched oracle client to

I have patched another three oracle databases to, and proc work correctly after patched without set the LD_LIBRARY and LIBPATH in these servers.

Why only patching oracle client will produce the error?