adamallo / SimPhy

SimPhy: A comprehensive simulator of gene family evolution
GNU General Public License v2.0
26 stars 1 forks source link

Precompiled binary doesn't work #1

Closed josephwb closed 8 years ago

josephwb commented 8 years ago

I downloaded the latest version and made the binary executable:

chmod +x simphy_lnx64

However, when I try to run it, I get the following error:

./simphy_lnx64 
bash: ./simphy_lnx64: No such file or directory

I have never seen this error before, so I am not sure what the problem is.

This is a bit moot since I was able to compile myself easily, but I thought I would pass this along. :bowtie:

adamallo commented 8 years ago

Is there any chance that you are trying to use it in a 32bit machine? (It sounds like a stupid question, but just in case). Otherwise, which linux distribution are you using? I have just tried it in Mint and Red Hat and it worked properly in both of them.

Thank you very much for your interest in SimPhy and for reporting the problem.

Diego M.

P.S. I am glad you were able to compile it from scratch!

josephwb commented 8 years ago

Definitely 64bit. Debian.

josephwb commented 8 years ago

Hey, just a note a colleague tried this on Ubuntu the other day with the same result.

leomrtns commented 8 years ago

Thanks for the warning, @josephwb! I can reproduce your error on Debian sid.

It seems that it's the same problem as reported here: http://askubuntu.com/questions/60238/running-a-64bit-executable-on-a-64-ubuntu-lucid/87189

That is, the pre-compiled loader is ld-lsb, while in the system I have ld-linux.

Quick and dirty solution: sudo ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

Or, in theory, installing the package lsb in Ubuntu (I haven't tried.)

Longer version: If I compare the ldd output from both I obtain (removing the uninteresting part of the output):

~/Downloads/SimPhy_1.0.1/bin] ldd simphy_static 
    /lib64/ld-linux-x86-64.so.2 (0x0000558943930000)
~/Downloads/SimPhy_1.0.1/bin] ldd simphy_lnx64 
    /lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x000055dfd598f000)

And if we see the file type (command "file"):

simphy_static: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=5cddef1f2c7c1b8dce09db7c17de4ea4133f620b, not stripped
simphy_lnx64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-lsb-x86-64.so.3, for GNU/Linux 2.6.24, BuildID[sha1]=3bd8a4fc664f2ac922f839149662575962499393, not stripped

For Debian the lsb packages didn't help at all, but I might be missing something...

josephwb commented 8 years ago

I'm afraid I have no solution to offer, just pointing out the problem. :bowtie:

How does a binary compiled on Debian fare on Red Hat? Is there the reciprocal problem? I shared the binary I compiled on Debian with my colleague who works with Ubuntu, and it works for him.

As I mentioned above, this is moot for me since compilation was so straightforward (despite the README being very foreboding).

adamallo commented 8 years ago

Thank you very much for letting us know again, Joseph.

We have decided to distribute binaries compiled with gcc instead of lsbcc. Thus, we avoid the usage of the ld-lsb loader and stick to the ld-linux. This should solve the problem. We will also provide an alternative version, compliant with the Linux Standard Base as before.

josephwb commented 8 years ago

Cool. Ping me if you'd like me to test things.

adamallo commented 8 years ago

Thank you very much. I appreciate your offer :). I've tried it in my Debian VM and it works properly, but if you could just try to download and execute the last precompiled version (release 1.0.2) to confirm that it works now it would be nice. If it does I'll close the issue.

josephwb commented 8 years ago

Works for me.

adamallo commented 8 years ago

Thank you very much.