MMseqs2
MMseqs2 copied to clipboard
GLIBC ERROR
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
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.
Maybe it works if you explicitly also add the conda-forge channel:
conda install -c conda-forge -c bioconda mmseqs2
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
Thanks for the clarification @mbargull!