GLIBC error when trying to use sra-toolkit
1
0
Entering edit mode
4.5 years ago

I'm trying to download the latest sra-toolkit from NCBI on a remote server running "Debian GNU/Linux 7 (wheezy)". I tried following the instructions in https://github.com/ncbi/sra-tools/wiki/02.-Installing-SRA-Toolkit, and I also tried following the instructions by Renesh Bedre in https://reneshbedre.github.io/blog/fqutil.html, unsuccessfully.

For example, after the installation I try running sudo prefetch SRR5790104 and I get the following: prefetch: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by prefetch) .

In comparison, after downloading the same file and following the same instructions on another server we are working on, running "Ubuntu 18.04.3 LTS" , everything worked just fine.

Has anyone dealt with this issue before and knows how to fix it?

software error ncbi sra-toolkit • 3.4k views
ADD COMMENT
2
Entering edit mode

Save yourself the trouble and download fastq files directly from EBI-ENA for the accession you posted above.

ADD REPLY
0
Entering edit mode

EBI-ENA looks great and will be very useful.

However, my entire lab is using the "older" server running Debian 7 as well as a newer server, so it would be great if we could use the sra-toolkit anyway, on both of them.

Is it that much trouble to make it work, given the relevant data shown earlier (output of ldd --version and the older OS)?

ADD REPLY
1
Entering edit mode

You must have a really old version o Debian (> 6-7 yr old). You could try:

sudo apt-get install libc6-dev

or

sudo apt-get install libc6-dev=2.18

Current GLIBC is now in version 2.31.

ADD REPLY
1
Entering edit mode

Which version of GLIBC are you using in Debian 7? Use ldd --version

ADD REPLY
0
Entering edit mode

thank you for your help.

when running ldd --version in the server running Debian 7, the output was:

ldd (Debian EGLIBC 2.13-38+deb7u12) 2.13

Copyright (C) 2011 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Written by Roland McGrath and Ulrich Drepper.

However, I also ran the command sudo apt-get install libc6 in an attempt to fix this error, and the output was:

Reading package lists... Done

Building dependency tree

Reading state information... Done

libc6 is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

ADD REPLY
4
Entering edit mode
4.5 years ago
zorbax ▴ 650

Use ENA directly, is faster. Anyway, if you want to use sra-toolkit in Debian 7 you can try install the 2.14 version.

mkdir -p ~/glibc214 && cd "$_"
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar zxvf glibc-2.14.tar.gz && rm glibc-2.14.tar.gz
cd glibc-2.14 && mkdir build && cd build
../configure --prefix=/opt/glibc-2.14
make -j4 && sudo make install

#export path before use sra-toolkit
export LD_LIBRARY_PATH=/opt/glibc-2.14/lib; sra-toolkit
ADD COMMENT
0
Entering edit mode

I tried using the commands you suggested above.

It seems that everything went well, but after running ../configure --prefix=/opt/glibc-2.14 , the output was:

checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu

checking for gcc... /opt/miniconda3/envs/py3/bin/x86_64-conda_cos6-linux-gnu-cc

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether /opt/miniconda3/envs/py3/bin/x86_64-conda_cos6-linux-gnu-cc accepts -g... yes

checking for /opt/miniconda3/envs/py3/bin/x86_64-conda_cos6-linux-gnu-cc option to accept ISO C89... none needed

checking how to run the C preprocessor... /opt/miniconda3/envs/py3/bin/x86_64-conda_cos6-linux-gnu-cpp

checking whether we are using the GNU C++ compiler... yes

checking whether /opt/miniconda3/envs/py3/bin/x86_64-conda_cos6-linux-gnu-c++ accepts -g... yes

configure: running configure fragment for add-on libidn

configure: running configure fragment for add-on nptl

checking for assembler gnu_indirect_function symbol type support... yes

checking whether .text pseudo-op must be used... yes

checking for assembler global-symbol directive... .globl

checking for assembler .type directive prefix... @

checking sysdep dirs... sysdeps/x86_64/elf nptl/sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/wordsize-64 nptl/sysdeps/unix/sysv/linux nptl/sysdeps/pthread sysdeps/pthread sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet nptl/sysdeps/unix/sysv sysdeps/unix/sysv sysdeps/unix/x86_64 nptl/sysdeps/unix sysdeps/unix sysdeps/posix sysdeps/x86_64/fpu sysdeps/x86_64/multiarch nptl/sysdeps/x86_64 sysdeps/x86_64 sysdeps/wordsize-64 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64/wordsize-64 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic

checking for a BSD-compatible install... /usr/bin/install -c

checking whether ln -s works... yes

checking whether /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/as is GNU as... yes

checking whether /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld is GNU ld... yes

checking for /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/as... /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/as

checking version of /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/as... 2.31.1, ok

checking for /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld... /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld

checking version of /opt/miniconda3/envs/py3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld... 2.31.1, ok

checking for pwd... /bin/pwd checking for gcc... /opt/miniconda3/envs/py3/bin/x86_64-conda_cos6-linux-gnu-cc

checking version of /opt/miniconda3/envs/py3/bin/x86_64-conda_cos6-linux-gnu-cc... 7.3.0, bad

checking for gnumake... no

checking for gmake... no

checking for make... make

checking version of make... 4.2.1, bad

checking for gnumsgfmt... no

checking for gmsgfmt... no

checking for msgfmt... msgfmt

checking version of msgfmt... 0.18.1, ok

checking for makeinfo... makeinfo

checking version of makeinfo... 4.13, ok

checking for sed... sed

checking version of sed... 4.2.1, ok

checking for autoconf... no

configure: error:

*** These critical programs are missing or too old: gcc make

*** Check the INSTALL file for required versions.

Needless to say, trying to run the next command you suggested (make -j4 && sudo make install) wasn't possible.

Do you know what's causing this problem?

ADD REPLY
1
Entering edit mode

Since your OS is very old at this point it is missing/lacks sufficiently newer versions of critical programs e.g. in this case gcc (compiler)/make.

ADD REPLY
0
Entering edit mode

Is it difficult to update these programs, specifically gcc?

ADD REPLY
0
Entering edit mode

If you are determined it may/should be possible. It can prove to be a rabbit hole since something else may come up that needs an upgrade.

Why not download the data on the new server and transfer it to old one if you must use the old server.

ADD REPLY
0
Entering edit mode

Two things about this. First, if you have conda, why don't you install sra-toolkit in an environment? Second, you should use the 'system gcc', not the gcc conda version. You have a gcc-7.3, you should be able to compile glibc-2.14 with a gcc > 2.5

List the installed compilers with sudo dpkg --list | grep compiler, then write gcc and use the autocomplete (tab) in your terminal and you will get all the compiliers availables in your $PATH. If you run gcc --version you will get the default version that you are using even if you have different versions. I use this script(https://git.io/JfiW6) to set a compiler version to complile legacy software that require different gcc version. Now I'm using gcc-9 but I also have gcc-5 in my system, I should use set-compiler.sh gcc-5 to use by default this compiler, install legacy software and then I'll change again to gcc-9 with set-compiler.sh gcc-9. The script just change the symbolic links of the gcc to the desire gcc version, require sudo powers.

ADD REPLY
0
Entering edit mode

You have a gcc-7.3,

Rather unlikely since this server is running an OS that was released 7 years back. If the server was properly administered we would likely not be in this situation. This particular release went out of long term support in mid-2018.

ADD REPLY
0
Entering edit mode

Thank you. This fixed the error.

ADD REPLY

Login before adding your answer.

Traffic: 1536 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6