On Wed, 2006-09-20 at 16:45 -0400, Jerry Feldman wrote:
I have a situation where a package installs some of its own libraries, as well as one library with the exact same name as on in /usr/lib. However, the package's library was compiled with different flags and is not compatible with the one in /usr/lib.
If I set LD_RUN_PATH to include the package's libraries, my executables that link with the library in /usr/lib pick up the one in the package's directory instead when they are run.
IIRC, SVR4.2 (e.g., UnixWare) had syntax for LD_RUN_PATH that told if the paths in LD_RUN_PATH should be checked before or after the system directories. Is there any such capability for Linux? I would in fact prefer to put the package's library directory in ldconfig. However, doing so keeps things like KDE, GNOME and YAST from running, as they then pick up the offending/incompatible version of the library. That is why I am even bothering with LD_RUN_PATH. I'm nearly out the door. Make sure you build with -L<path to correct libraries> You can also use the -rpath command line flag for force the specific
On Wednesday 20 September 2006 4:35 pm, Roger Oberholtzer wrote: libraries into the program so it will pick up the right library at run time.
I am trying to accomplish installing applications anywhere. Then set the path to their libraries in files in /etc/ldconfig.d. So, I do not know the directory to set when it is compiled. Of course, I do set the default install location when compiling. But if the install is elsewhere, I need ldconfig. If I could only control the order of checking that the dynamic loader will use. I really want the system libs to be checked first. Any libs in files in /etc/ldconfig.d should be checked after those in /etc/ld.so.conf, which in turn should be checked after those that are 'built in'. Instead, it seems that when ldconfig builds the cache, it finds a library and remembers the last place it was found. I guess my options are to contact the maker of the package with the offending (depending on your POV) library. It is ActiveState's Tcl package. Which is really a great package! Except for it's flawed libxml2 library... -- Roger Oberholtzer OPQ Systems AB Ramböll Sverige AB Kapellgränd 7 P.O. Box 4205 SE-102 65 Stockholm, Sweden Tel: Int +46 8-615 60 20 Fax: Int +46 8-31 42 23