[Thread Prev][Thread Next][Index]

Re: [ferret_users] libcurl error



Hi Felipe, this is simple and is not. It depends on the rule, how your system is managed.

First make sure you are running a 32-bit system. Otherwise your libcurl
is in /usr/lib64

The most simple way (NOT RECOMMENDED) ist to make a link

ln -fs /usr/lib/libcurl.so.4 /usr/lib/libcurl.so.3

I have tested this for SLES11. It seems to work.

However, you may run in difficulties with your rpms and system installation.

So it is better to make the link to some place outside the system search path for libs, for example in your $HOME/lib You have to make sure, that ferret finds the lib. Hence, you have to do something like:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your_home/lib

before starting ferret.

This may have some side effects for other binaries, because LD_LIBRARY_PATH is still changed, when ferret is ready.
Other users cannot benefit from your installation work.

So you may write a wrapper script, that opens a new shell, exports the modified LD_LIBRARY_PATH and calls ferret. This can be organised in such a way, that all users benefit from the improved skript. The following script works in a heterogenic environment with Suse10 and 11, but with a common software repository.
The missing lib is in /sw/compat_10_11/lib64. Please see also,
how other environment variables can be temporarly modified.

#!/bin/bash
# start Ferret on different machines
host=`hostname`
echo "starting Ferret on "$host
export FER_IOW=/sw/viz/ferret/ferret_iow
source /sw/viz/ferret/ferret_64_dynamic_6.62/ferret_paths_bash
[[ -d $FER_IOW/go ]] && export FER_GO="$FER_IOW/go "${FER_GO#.}
[[ -d $FER_IOW/ppl ]] && export FER_PALETTE="$FER_IOW/ppl "${FER_PALETTE#.}
[[ -d $FER_IOW ]] && export FER_DATA="$FER_IOW/dsets "${FER_DATA#.}
[[ -d $HOME/ferret/go ]] && export FER_GO=". $HOME/ferret/go "${FER_GO#.}
[[ -d $HOME/ferret/ppl ]] && export FER_PALETTE=". $HOME/ferret/ppl "${FER_PALETTE#.} [[ -d $HOME/ferret/data ]] && export FER_DATA=". $HOME/ferret/data "${FER_DATA#.} [[ -d $HOME/ferret/ext_func/libs ]] && export FER_EXTERNAL_FUNCTIONS=". $HOME/ferret/ext_func/libs_linux "${FER_EXTERNAL_FUNCTIONS#.}
export FER_GO=". "${FER_GO#.}
export FER_PALETTE=". "${FER_PALETTE#.}
export FER_DATA=". "${FER_DATA#.}
export FER_EXTERNAL_FUNCTIONS=". "${FER_EXTERNAL_FUNCTIONS#.}
suse_version=`cat /etc/SuSE-brand | grep VERSION | cut -f3 -d" "`
if [ $suse_version == '11' ]
then
  export LD_LIBRARY_PATH=/sw/compat_10_11/lib64:$LD_LIBRARY_PATH
fi
/sw/viz/ferret/ferret_64_dynamic_6.62/bin/ferret $*

Good luck,
Martin
Felipe Pimenta wrote:
Dear all,

I am getting the following error when I try to run ferret:

p01215@crow:~>  ferret
/home/users/p01215/local/ferret/bin/ferret: error while loading shared
libraries: libcurl.so.3: cannot open shared object file: No such file
or directory

I've noticed the machine I am working don't have the libcurl.so.3 file.

Can I tell ferret to use the /usr/lib/libcurl.so.4? How?

Many Thanks,

Felipe

--



[Thread Prev][Thread Next][Index]

Contact Us
Dept of Commerce / NOAA / OAR / PMEL / TMAP

Privacy Policy | Disclaimer | Accessibility Statement