Staden 2003: path & environment variables entry into .bash_profile file breaks several other software packages under RedHat9?

David F. Spencer DSpencer at Dal.CA.NOSPAM
Mon Jun 16 03:11:54 EST 2003

In article <bcch1e$eqe$1 at oravannahka.helsinki.fi>, Michael Jeltsch 
<markku.jeltsch at helsinki.fi> wrote:

> After installing the Staden package, I noticed that licq (ICQ for Linux) 
> and bluefish (an html editor) don't work anymore. When I removed the two 
> lines from my .bash_profile file
> export STADENROOT=/usr/local/staden_linux_2003.0b1
> . $STADENROOT/staden.profile
> (and logged out/in again) everything worked fine again. Apparently these 
> two lines make other applications first look into Staden's linux-bin 
> directory when looking for certain libraries, whereas they should look 
> first in /usr/lib. A question to Linux-Experts: how should I handle 
> this? The library file referred to by Staden and e.g. licq 
> (libstdc++.so.5) have not the same version numbers (the libstdc++.so.5 
> licq 1.2.3.-5 is using is libstdc++.so-5.0.3, whereas staden uses 
> libstdc++.so.5.0.1). Should I delete the library files in Staden's 
> linux-bin directory and create a symbolic link to the corresponding 
> library in /usr/lib? Or should I modify the two lines in .bash_profile 
> that first all applications look into /usr/lib before they look in 
> Staden's linux-bin directory (and how would I do that?) I fear that 
> whatever I do, I might break one or the other application because of the 
> different library versions used by the different programs. Obviously 
> licq doesn't manage with the older library that Staden is using and e.g. 
> bluefish doesn't manage with another newer library Staden is using...
> Thanks in advance for suggestions!

You're concern with libstdc++ versions is not likely to be relevant here.

The Staden package is based on tcl/tk (and itcl/itk) and is distributed 
with several shared object (.so) libraries of its own, the tcl/tk being 
release 8.4 and itcl being 3.3 (this is for Staden 2002). The script 
file that is run everytime you log in, '$STADENROOT/staden.profile', 
sets (or resets) the environment variable 'LD_LIBRARY_PATH' to point to 
the Staden-supplied libraries (in additional to any preexisting ones). 
'LD_LIBRARY_PATH', a relic from older unix-type OSs, is not necessarily 
present in a linux installation because linux uses a different (and in 
my opinion a far smarter system), configured by 'ldconfig', using the 
file '/etc/ld.so.conf'. However, 'LD_LIBRARY_PATH' is recognized and 
used, if found, even in linux. Type 'echo $LD_LIBRARY_PATH' in a shell 
and see if anything comes back. Then navigate to the Staden installation 
point (I, like you, use the traditional 'usr/local' tree but I have it 
in 'usr/local/bin/Staden_2002'). In the first level of the subdirectory 
you'll find the file 'staden.profile' (a shell script that you can edit 
in any text editor). Open this file and in about the middle there are 
lines that are concerned with setting 'LD_LIBRARY_PATH'. If you found 
that 'LD_LIBRARY_PATH' is defined in your environment (above) you may be 
able to sort out the conflicts you are seeing by modifying the line that 
appends "$LD_LIBRARY_PATH" to the end so that "$LD_LIBRARY_PATH" instead 
precedes the Staden entry (just cut and paste but watch where the colon 
(":") goes.)

I don't use either 'bluefish' or 'licq' and never install them but it 
would be useful to see the results of 'ldd bluefish' and 'ldd licq' 
(you'll have to navigate to I assume 'usr/bin' to do this). I'm guessing 
that 'bluefish' and 'licq' are also tcl apps and you're encountering a 
library conflict. If not, the listing of the shared libraries that 'ldd' 
gives will narrow down the conflict. If you look in the subdirectory 
'lib' in the Staden subdirectory there is another subdirectory, probably 
'linux-binaries' (it's 'solaris-binaries' on a Sun running Solaris) 
where you will find all of the shared libraries that come with Staden. 
One or more of these is causing the problems with 'bluefish' and 'licq' 
because those libraries are being found first, before the libraries that 
'bluefish' and 'licq' were originally built against.

You are also using the beta Staden 2003 release and there may be 
complications caused by that as well. Unless you really plan on helping 
to debug and refine Staden you would probably be wiser to stick to the 
stable, mature release Staden 2002. Provided that you have the tcl/tk 
library versions 8.4 and itcl 3.3 installed on your system it is more 
likely that Staden will work properly with those standard libraries than 
that 'bluefish' or 'licq' will work with the Staden supplied libraries, 
even if they have the same version number.

As a last note, I put the two Staden configuration lines (that you give 
in your post) at the end of every user's '.bashrc' rather than 
'bash_profile' files. I can't recall why I did that but it works fine 
and may help you sort out your conflicts.


David F. Spencer, PhD
Dept. of Biochemistry and Molecular Biology
Dalhousie University
Halifax, Nova Scotia, Canada

DSpencer at Dal.CA

More information about the Staden mailing list

Send comments to us at biosci-help [At] net.bio.net