I've edited my /etc/bashrc to set LD_LIBRARY_PATH like in my previous question that I asked. However it does not seem to be taking effect. Even though echo $LD_LIBRARY_PATH does show my modifications. And running my program: LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi explicity does work. Do I need to reboot the system? What's going on?
2 Answers
You need to export the variable.
export LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi Your formulation LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi sets the variable in the current shell. If you're just running LD_LIBRARY_PATH=/usr/local/lib ; ./test.cgi you will set it in the current shell, but not in the child process ./test.cgi.
From the bash man page:
export: The supplied names are marked for automatic export to the environment of subsequently executed commands. Try to run ldconfig -v to rebuild the library cache.
- This was not the problem, but then again I just rebooted so it was probably already done.unixman83– unixman832012-03-24 13:49:49 +00:00Commented Mar 24, 2012 at 13:49
LD_LIBRARY_PATH="/usr/local/lib" ./test.cgiworks./test.cgidoes not.