gmarcais / Jellyfish

A fast multi-threaded k-mer counter
Other
463 stars 136 forks source link

Error libjellyfish-2.0.so.2 #61

Open moneterg opened 8 years ago

moneterg commented 8 years ago

Hi, I followed all intructions in installation ./configure make -j 4 sudo make install

But, when I ran, this error appeared. jellyfish: error while loading shared libraries: libjellyfish-2.0.so.2: cannot open shared object file: No such file or directory

So, I read this issue (https://github.com/gmarcais/Jellyfish/issues/13) and solved this problem like user "kes1smmn" suggested. I believe variable LD_LIBRARY_PATH has not been created, then I put this on my bash_aliases:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/jellyfish-2.2.6/.libs

Problem solved now! I think! :)

gmarcais commented 8 years ago

Hi,

you should not set your LD_LIBRARY_PATH like that and you should remove your export line from .bash_aliases.

You installed Jellyfish in a system directory (/usr/local/ by default). You need to update your system library cache with:

sudo ldconfig

I updated the Readme to include this extra step.

On the other hand, if you install in a non-system directory, then no extra step is needed and administrative privileges are not necessary (i.e., no sudo):

./configure --prefix=$HOME
make
make install

Hope this helps.

ryshjx commented 7 years ago

Hi,

I used the jellyfish-2.2.6.tar.gz, and follow the installation: ./configure --prefix=$HOME make make install But I still got the error: jellyfish: error while loading shared libraries: libjellyfish-2.0.so.2: cannot open shared object file: No such file or directory.

I found a way to solve my problem (a general way to solve the shared libraries issues). I found the path of my libjellyfish-2.0.so.2 file first, then type: cd /etc sudo gedit ld.so.conf to edit the ld.so.conf file. In the file, add the folder path of libjellyfish-2.0.so.2 to the end of the file (behind the line include /etc/ld.so.conf.d/*.conf). And finally, update the library cache: sudo ldconfig

Hope my comment will help those who face the same problems with me.

gmarcais commented 7 years ago

@ryshjx You should not have to do that, and I would not suggest adding a user writable directory in your ld.so.conf.

The configuration and installation that you performed should work without messing around with ld.so.conf or LD_LIBRARY_PATH. Can you show what chrpath $HOME/bin/jellyfish prints? It should print something like: RPATH=$HOME/lib, with $HOME replaced by your actual home directory path.