COMBINE-lab / salmon

🐟 🍣 🍱 Highly-accurate & wicked fast transcript-level quantification from RNA-seq reads using selective alignment
https://combine-lab.github.io/salmon
GNU General Public License v3.0
776 stars 164 forks source link

libboost shared library error #565

Open bounlu opened 4 years ago

bounlu commented 4 years ago

I installed salmon from conda environment using python3 and got the below error:

$ salmon

salmon: error while loading shared libraries: libboost_thread.so.1.60.0: cannot open shared object file: No such file or directory

I am using Ubuntu 16.04 Xenial for which the latest Boost version is 1.58.

Since it was originally compiled under a later version of Boost (1.60), it gives the above error.

I found this post to fix the issue temporarily: https://www.biostars.org/p/389360/

It would be nice to fix it to search for the latest version of boost available though.

Thanks.

Rhinogradentia commented 4 years ago

I got the same error but under Ubuntu 20.04. After Installing boost 1.60.0 manually it initially seemed to work, but then I got the following error:

Error, cannot determine salmon version installed from (salmon: symbol lookup error: salmon: undefined symbol: _ZN5boost15program_options3argE
) at /usr/local/bin/trinityrnaseq-v2.11.0/Trinity line 3969.
rob-p commented 4 years ago

Hi @Rhinogradentia,

This error occurs when there is a binary mismatch between the library used to compile salmon versus that used to run it. Specifically, this occurs when the boost library is not compiled with a modern ABI (Application Binary Interface) — when boost was not compiled in a way compatible with C++11/14/17/20. Are you using the version installed via bioconda, or the pre-compiled binary from github, or have you compiled this yourself? You can use the LD_LIBRARY_PATH to set things so that the appropriate version of the library is discovered first. You want the version of boost that is found first (the one appearing earliest in the LD_LIBRARY_PATH) to be matched to the one with which salmon was compiled.

gavieira commented 3 years ago

I recently had a similar problem using bioconda.

When installing salmon alongside RSEM, conda downgraded salmon to version 0.6.

As soon as I installed salmon in a dedicated environment, everything worked fine.

dcowanturner commented 3 years ago

I bumped into a similar problem. Fixed by making an new enviroment and forcing conda to install the most recent version. conda install -c conda-forge -c bioconda salmon=1.3.0

nservant commented 3 years ago

Dear all, I have the same issue. None of the conda version works on my Linux Centos. Is there any library to add in the conda recipe to fix the issue ? Thanks

julien-roux commented 3 years ago

I have the same issue. None of the conda version works on my Linux Centos. Is there any library to add in the conda recipe to fix the issue ?

Similar issue here too with salmon 1.4.0 installed via conda in a clean environment salmon: error while loading shared libraries: libtbb.so.2: cannot open shared object file: No such file or directory

Edit: apparently solved by downgrading tbb as suggested in https://www.biostars.org/p/494922/

nservant commented 3 years ago

We fix it by adding the tbb package (I also added the libgcc but I think it is not mandatory) :

name: salmon
channels:
  - bioconda
  - conda-forge
  - defaults
dependencies:
  - libgcc-ng=9.1.0=hdf63c60_0
  - tbb=2020.2=hc9558a2_0
  - salmon=1.4.0=hf69c8f4_0
junyu-boston commented 3 years ago

I just conda installed salmon fresh. I got error when I ran it.

$ conda create -n salmon salmon
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location:~/miniconda3/envs/salmon

  added / updated specs:
    - salmon

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-1_gnu
  bzip2              conda-forge/linux-64::bzip2-1.0.8-h7f98852_4
  icu                conda-forge/linux-64::icu-64.2-he1b5a44_1
  jemalloc           conda-forge/linux-64::jemalloc-5.2.1-h9c3ff4c_5
  libgcc-ng          conda-forge/linux-64::libgcc-ng-9.3.0-h2828fa1_18
  libgomp            conda-forge/linux-64::libgomp-9.3.0-h2828fa1_18
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-9.3.0-h6de172a_18
  salmon             bioconda/linux-64::salmon-1.4.0-hf69c8f4_0
  tbb                conda-forge/linux-64::tbb-2021.1.1-h4bd325d_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1010

Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate salmon
#
# To deactivate an active environment, use
#
#     $ conda deactivate

$ conda activate salmon
$ salmon
salmon: symbol lookup error: salmon: undefined symbol: _ZN3tbb8internal24concurrent_queue_base_v818internal_push_moveEPKv

I think this is related with rob-p commented on Sep 22, 2020. I have a naive question: Is it possible to fix this in the recipe by adding the problematic dependencies? I am using centOS 8.

adriaaula commented 1 year ago

A true easy solution can be found in

480