0

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
  • 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? Commented Mar 24, 2012 at 13:43
  • @cjc updated. Running with LD_LIBRARY_PATH="/usr/local/lib" ./test.cgi works ./test.cgi does not. Commented Mar 24, 2012 at 13:44

2 Answers 2

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. 
2
  • Your answer to my other question was incorrect because this works! :/ Commented Mar 24, 2012 at 13:51
  • Yeah, sorry, I forgot to specify the export in bashrc. Commented Mar 24, 2012 at 13:52
3

Try to run ldconfig -v to rebuild the library cache.

1
  • This was not the problem, but then again I just rebooted so it was probably already done. Commented Mar 24, 2012 at 13:49

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.