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?
Asked
Active
Viewed 1.1k times
0
-
You don't need to reboot. The updated /etc/bashrc will be read when the user logs in again. Can you show the LD_LIBRARY_PATH and how you are running your executable? – cjc Mar 24 '12 at 13:43
-
@cjc updated. Running with `LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi ` works `./test.cgi` does not. – unixman83 Mar 24 '12 at 13:44
2 Answers
5
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.
cjc
- 24,533
- 2
- 49
- 69
-
Your answer to my other question was incorrect because this works! :/ – unixman83 Mar 24 '12 at 13:51
-
3
Try to run ldconfig -v
to rebuild the library cache.
Sven
- 97,248
- 13
- 177
- 225
-
This was not the problem, but then again I just rebooted so it was probably already done. – unixman83 Mar 24 '12 at 13:49