On Wed, 2006-05-17 at 10:16 -0400, James Pifer wrote: > I'm wrote a small java app that I will run in a jsp. The vendor supplied > jars also come with shared libraries that are required. Their > documentation says to set LD_LIBRARY_PATH to the directory where you put > the libraries. > > This works fine when running the app from a terminal environment after > setting LD_LIBRARY_PATH. The problem is that when I run the jsp it's run > from an application that runs as a service, so LD_LIBRARY_PATH is not > set in that environment. > > In searching on this issue I found MANY people saying it's bad to set > LD_LIBRARY_PATH. These people are mislead. Setting LD_LIBRARY_PATH adds complexity and can be error-prone to use, but that's basically all. A similarily, semi-portable, alternative would be to apply -rpath (c.f. info ld). > I've tried running ldconfig -n and the directory but it hasn't seemed to > work. > > So what is the proper way to do this? LD_LIBRARY_PATH, -rpath both are proper ways. A third and mostly glibc proprietary alternative would be to apply ld.so.conf rsp. /etc/ld.so.conf.d/ (c.f. man ld.so). It's the way Linux vendors (e.g. RH) prefer for their packages, but they are problematic otherwise (e.g. when installing a shared library and not having root privileges) > I want to set these libraries and > have them set after a system restart, etc. For system-wide installation under Linux, ld.so.conf / ldconfig is the probably is simplest approach. Ralf