MMseqs2 icon indicating copy to clipboard operation
MMseqs2 copied to clipboard

GLIBC ERROR

Open sanyalab opened this issue 3 years ago • 4 comments

Hello,

My conda environment is as follows

active environment : ClusterEnv active env location : /mnt/common/rh6/annotate/Anaconda3/envs/ClusterEnv shell level : 2 user config file : /home/sanyalab/.condarc populated config files : /home/sanyalab/.condarc conda version : 4.10.1 conda-build version : 3.18.9 python version : 3.7.4.final.0 virtual packages : __linux=2.6.32=0 __glibc=2.12=0 __unix=0=0 __archspec=1=x86_64 base environment : /mnt/common/rh6/annotate/Anaconda3 (writable) conda av data dir : /mnt/common/rh6/annotate/Anaconda3/etc/conda conda av metadata url : https://repo.anaconda.com/pkgs/main channel URLs : https://conda.anaconda.org/bioconda/linux-64 https://conda.anaconda.org/bioconda/noarch https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /mnt/common/rh6/annotate/Anaconda3/pkgs /home/sanyalab/.conda/pkgs envs directories : /mnt/common/rh6/annotate/Anaconda3/envs /home/sanyalab/.conda/envs platform : linux-64 user-agent : conda/4.10.1 requests/2.22.0 CPython/3.7.4 Linux/2.6.32-696.30.1.el6.x86_64 rhel/6.9 glibc/2.12 UID:GID : 101430:237 netrc file : None offline mode : False

MMseqs installs ok (I think). However, I get a GLIBC error when running mmseqs --help like below

mmseqs: /lib64/libc.so.6: version GLIBC_2.16 not found (required by /mnt/common/rh6/annotate/Anaconda3/envs/ClusterEnv/bin/../lib/libstdc++.so.6) mmseqs: /lib64/libc.so.6: version GLIBC_2.17 not found (required by /mnt/common/rh6/annotate/Anaconda3/envs/ClusterEnv/bin/../lib/libstdc++.so.6) mmseqs: /lib64/libc.so.6: version GLIBC_2.16 not found (required by /mnt/common/rh6/annotate/Anaconda3/envs/ClusterEnv/bin/../lib/libgomp.so.1) mmseqs: /lib64/libc.so.6: version GLIBC_2.17 not found (required by /mnt/common/rh6/annotate/Anaconda3/envs/ClusterEnv/bin/../lib/libgomp.so.1)

Please advice what to do.

Thanks Abhijit

sanyalab avatar Jun 24 '21 17:06 sanyalab

Your kernel/libc versions are very old. I am surprised that conda runs at all. These error messages are thrown by MMseqs2 dependencies that are provided by conda-forge (libgomp/libstdc++), they require a newer glibc.

If you compile MMseqs2 on your own from source it might still work, no guarantees though.

milot-mirdita avatar Jun 24 '21 18:06 milot-mirdita

Maybe it works if you explicitly also add the conda-forge channel:

conda install -c conda-forge -c bioconda mmseqs2

milot-mirdita avatar Jun 24 '21 18:06 milot-mirdita

Hi @milot-mirdita, @sanyalab,

Maybe it works if you explicitly also add the conda-forge channel:

conda install -c conda-forge -c bioconda mmseqs2

Yes, this is exactly what is needed. Ideally, one would have the channel configuration set as described in https://bioconda.github.io/user/install.html#set-up-channels.

Your kernel/libc versions are very old. I am surprised that conda runs at all.

We (Bioconda and conda-forge) currently support CentOS 6 (i.e., glibc 2.12, Linux 2.6.32 (w/ RHEL patches)) as the oldest supported system. We'll move to CentOS 7 in the future, but had/needed to delay that move because some of our users still use CentOS/RHEL 6. Due to the CentOS 8 Linux <> CentOS 8 Stream debacle this move has been delayed further. (Read: At some point, maybe in half a year or so (no date set yet), Bioconda/conda-forge may build packages that would require you, @sanyalab, to run on an updated system.)

These error messages are thrown by MMseqs2 dependencies that are provided by conda-forge (libgomp/libstdc++), they require a newer glibc.

The libstdc++/libgomp didn't come from conda-forge but most likely from defaults/pkgs/main which have packages provided by Anaconda. Anaconda started to compile against CentOS 7 (i.e., glibc 2.17) at some point (but in the meantime they also noticed customers still rely on CentOS 6). In any case, using -c conda-forge -c bioconda (or having those two in the Conda configuration beforehand) will yield glibc 2.12 compatible libstdc++/libgomp from conda-forge.


Overall, this isn't and upstream MMseqs2 issue but purely downstream and can be remedied by using the Conda channel order recommended in the Bioconda docs.

Cheers, Marcel

mbargull avatar Jul 14 '21 10:07 mbargull

Thanks for the clarification @mbargull!

milot-mirdita avatar Jul 14 '21 11:07 milot-mirdita