LD_LIBRARY_PATH - how to set?

Joal Heagney joal at bigpond.net.au
Thu Mar 31 20:13:03 EST 2005


Antoon Pardon wrote:
> Op 2005-03-31, Joal Heagney schreef <joal at bigpond.net.au>:
> 
>>Joal Heagney wrote:
>>
>>>Roman Yakovenko wrote:
>>>
>>>
>>>>Thanks for help. But it is not exactly solution I am looking for. I
>>>>would like to do it from python script. For example
>>>>
>>>>update_env() #<- this function will change LD_LIBRARY_PATH
>>>>import extension_that_depends_on_shared_library
>>>>
>>>>Roman
>>>>
>>>>On Mar 31, 2005 9:35 AM, John Abel <john.abel at pa.press.net> wrote:
>>>>
>>>>
>>>>>With Solaris 8+ you would use the command crle, with Linux
>>>>>(RedHat/SuSE/Mandrake) you need to add the relevant directories
>>>>>/etc/ld.so.conf and run ldconfig.  I've not got a Debian box to hand, so
>>>>>I can't say if it matches, but that should give you a pointer.
>>>>
>>>>
>>>>
>>>>I think I should have permissions to do it. (more over users of my
>>>>scripts should have permissions )
>>>
>>>
>>>Yep. Unfortunatly if you don't have access to the /etc/ld.so.conf file, 
>>>the only option left is your wrapper script idea. (By the way, have you 
>>>actually tested to see if setting the LD_LIBRARY_PATH actually works? If 
>>>not, you're really up the creek.)
>>>
>>>If the script is in shell, you could use something like:
>>>
>>>(Dotted lines denote start and end of script, not actual script content)
>>>-----------------------------------------------------------
>>>#!/bin/sh
>>>if ! echo ${LD_LIBRARY_PATH} | /bin/fgrep -q "/path/to/your/library" then
>>>export LD_LIBRARY_PATH=$oldpath":/path/to/your/library"
>>>fi
>>><wrapped program> $*
>>>-----------------------------------------------------------
>>>
>>>This will check to see if your library path is in the LD_LIBRARY_PATH, 
>>>set it if it's not, and then run your wrapped program, passing it the 
>>>arguments that the wrapper script was called by.
>>>
>>>Joal
>>
>>Aaaarrrrggghhhh. Too long since I've programmed in script. Plus it 
>>doesn't help changing your mind about implementation halfway through. 
>>The script should read something like this:
>>
>>-----------------------------------------------------------
>>#!/bin/sh
>>if ! echo ${LD_LIBRARY_PATH} | /bin/fgrep -q "/path/to/your/library"
>>then
>>	export LD_LIBRARY_PATH=$LD_LIBRARY_PATH":/path/to/your/library"
>>fi
>><wrapped program> $*
>>-----------------------------------------------------------
> 
> 
> And you should change that last line to:
> 
>   <wrapped program> "$@"
> 

Ah yes, because we want the arguments passed in as seperate words, not 
as a whole string.

Serves me right for testing this out as:

#!/bin/sh
echo $*

:)

Joal



More information about the Python-list mailing list