[Thread Prev][Thread Next][Index]

Re: [ferret_users] ferret: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory

Hi Dessy,

the new versions of ferret use the system lib libreadline. Ferret is build with Redhat Linux. This distribution
has different version-rolling than Suse linux. I am using Suse, so I know your problem.

You have a 64-bit system. So please download the 64-bit ferret. The libs you need are (if they are there) in /usr/lib64.

I strongly recomment, NEVER, to play around in the system area to fix such problems. "Links" to fake a library version may confuse yast.

If you have installed a new ferret version you may use a unix command ldd, to check if all dependencies are resolved.

ldd /your_path/ferret_v685_rh6/bin/ferret

You see, which libraries are expected and where they are found. If one is missing, you see which one.

Now, if a library is missing, you can try to install it in the system. This will fail mostly, since all lib-versions
in suse linux are interdependent.

Alternativly you may "fake" the library by linking to a library with another version number. Suse 11 does
not have libcurl.so.3, but this is required by ferret_6.85_redhat5. To fake the existence of this
libcurl.so.3 for ferret_6.85_redhat5 produce a link
/your_path/ferret_v685_rh5/lib64/libcurl.so.3 -> /usr/lib64/libcurl.so

Now, how to tell ferret, where this library resides? There is an environment variable called LD_LIBRARY_PATH
which is made to do this. In our case we have to issue:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sw/viz/ferret/ferret_v685_rh5/lib64

ldd will show you, that ferret is able to find the library now.

Finally: to set  LD_LIBRARY_PATH directly is bad style. All other applications will see the same modified libcurl, possibly with fatal
consequences. So I strongly suggest to start ferret with a script like this:

[[ "${DISPLAY%%:*}" = "localhost" ]] && export DISPLAY=${DISPLAY##*:}
source /sw/viz/ferret/ferret_v685_rh5/ferret_paths_bash_v685_rh5
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sw/viz/ferret/ferret_v685_rh5/lib64
/sw/viz/ferret/ferret_v685_rh5/bin/ferret_v6.85 $*

If you put these lines (for sure with paths tailored to your installation) into a script called "ferret" and put this script at
same place in $PATH, say $HOME/bin or /usr/local/bin, ferret should start now.
LD_LIBRARY_PATH is only modified during your ferret session.

Hope this helps to get started,

Am 13.03.2014 06:38, schrieb dessyberlianty:
Dear Ferret Users,

At first, please accept my sincere apologies for a long subject of this email.
I have problem installing Ferret into HPC with SUSE Linux Enterprise Server 11 SP1 (x86_64), Linux version
After setting source ferret_paths, when conduct a ferret command, the result are as followings:

   mpiserv:~/Downloads/ # source /usr/local/ferret/ferret_paths.sh
   mpiserv:~/Downloads/ # ferret
   ferret: error while loading shared libraries: libreadline.so.6:
   cannot open shared object file: No such file or directory
   mpiserv:~/Downloads/ #

Then I try to install libreadline.so.6, but it need other dependencies, and it takes times since I don't have much experience in SUSE linux.
The dependencies are: glibc, basesystem, and others.
I am not sure whether I can ask any help to these forum.
I really appreciate for any suggestion and help.
Thank you very much.

Sincerely yours,


[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce / NOAA / OAR / PMEL / Ferret

Privacy Policy | Disclaimer | Accessibility Statement