What to do about this Linux error msg?

Bakwetu

Golden Member
Oct 10, 1999
1,681
0
0
Being a newbie at Linux I installed Winlinux (runs on a fat32 partion and can be removed like a regular windows program). There is one program specifically which I need to run. I got the program (a binary file called poy.linux, can be dl:ed from American museum of natural history ftp://ftp.amnh.org/pub/molecular/poy). I started winlinux, put the file on my linux partition and allowed executing and reading in the root, opened a command window and tried to run it, but I got the following error message "poy.linux :error in loading shared libraries: libricurses.so.4: cannot open shared object file: no such file or directory". Any tips on what to do? Make and make install doesn't work and I don't think the program needs installing.
 

nexus9

Senior member
Jan 8, 2000
535
0
0
First, use the "find" command to see if you have that library on your system:

find / -name "*libricurses*" -print

If you have it, you should be able to change your LD_LIBRARY_PATH variable (usually in your .cshrc or .login) to point to the directory that has this file.

-Nexus9
 

Damaged

Diamond Member
Oct 11, 1999
3,020
0
0
Are you sure it isn't libcurses? I would think that's the shared library it's looking for. The program may be looking for a specific version of that library and that may be killing you.

Just run ldconfig -v at the command line. Try reading the man page on ldconfig for further help. But, what ldconfig does is determine the runtime link bindings.

You could also just search the /usr/lib and the /lib directories. Most likely the library would reside there.
 

Bakwetu

Golden Member
Oct 10, 1999
1,681
0
0
Ops, sorry it should be libncurses and not libricurses. I have searched for the file, but haven't found it. The closest thing is /lib/libncurses.so.5.0. I also searched for ldconfig but it wasn't found, and couldn't be ran of course. Is it the program that calls for a library or is it something with the system? Is the library something that can be downloaded or is it something that the system creates during the install? Ah, well maybe I should dl the sourcefile instead and compile it myself, but I'm not shure that would help. Being a pesky newbie shure takes its toll :(:(
 

Damaged

Diamond Member
Oct 11, 1999
3,020
0
0
Well the binary you have is compiled and looking for libncurse.so.4. That's the problem. Your system has libncurses.so.5. So, yes, you should download and compiles the source yourself.

Here's how to do it:

1) download the tarball, usually called foo.tar.gz (if it's gzipped).

2) create a directory mkdir <directory name> and move mv foo.tar.gz the tarball there.

3) untar the thang by doing tar -xzvf foo.tar.gz

3a) cd to the directory that it created...if it created one.

3b) ls to see if there's a README and INSTALL files for instructions.

4) Typically it'll be ./configure, make, make install

That's about it. BTW the ./ in front of the configure command means execute that command relative to the directory that you're in. Otherwise it will look at your PATH statement and look there, but of course it won't find that command. So that over rides the system PATH environment variable.
 

nexus9

Senior member
Jan 8, 2000
535
0
0
Or if you're really lazy, you could just try making a symbolic link:

ln -s /lib/libncurses.so.5.0 /lib/libncurse.so.4

FYI - the command:

ldd program_name

will give you a list of all the libraries that &quot;program_name&quot; needs to run.

 

Damaged

Diamond Member
Oct 11, 1999
3,020
0
0
Dang it! That's the command I was really trying to remember nexus9! I was in a hurry though and didn't think to just do an apropos ldd. Crap! Oh well. You got it. :)

I wonder if the symlink will work in this case. I would think it would unless their's something drastically different in the libs.
 

Bakwetu

Golden Member
Oct 10, 1999
1,681
0
0
I wrote to the author of the program and he thought it had to do with the libraries required for parallel excecution of the program. He could make a non-parallell version for me if I wanted to-nice guy don't you think? But that won't be necessary as the symbolic link trick worked :D. The program runs nicely now and I'm one happy camper. Thanks for all the help guys :)