Search code examples
linuxubuntuglibcubuntu-20.04wsl-2

Error: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found


I was trying to run a script on a remote server I am logged in, but it reported the error: bin/track.linux: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by bin/track.linux)

So, I checked the current version, which in fact was 2.28. I went back to my local environment (Ubuntu 18.04 on WSL) and there was the same version, too.

Then, as suggested by multiple forums, I upgraded my environment to Ubuntu 20.04 and I checked the version, which is indeed ldd (Ubuntu GLIBC 2.31-0ubuntu9.14) 2.31 Copyright (C) 2020 Free Software Foundation, Inc.

However, when I tried to run again the script on the server, it reported once again: bin/track.linux: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by bin/track.linux) and I checked the version of GLIBC, which was indeed ldd (Debian GLIBC 2.28-10+deb10u2) 2.28.

So, I have some questions:

a) why when I ask the version of GLIBC by doing ldd --version, locally it refers to Ubuntu GLIBC and on the server it refers to Debian GLIBC?

b) why are the two versions different? I mean why the GLIBC version on the server differs from the local GLIBC version? Should I disconnect from the server and try to reconnect again?

(P.s. Sorry in advance for my non-computer science language)


Solution

  • why are the two versions different?

    You have two separate systems. One of them (local) got upgraded. That has no effect on the other (the one on the server), which stayed the same (old).

    When you try to run the program (which requires GLIBC-2.29 or above) on the server (which has GLIBC-2.28), it doesn't work.

    Why are you surprised by this outcome?