21

One of the software I want to run needs GLIBC_2.27, and all I see is this error on the console:

/lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.27" not found

When I run this command ldd --version I get this output:

ldd(Ubuntu GLIBC 2.23-0ubuntu11) 2.23

How can I update GLIBC to 2.27 and get rid of the above error?

Deep
  • 616
  • 1
  • 9
  • 17
  • Updating glibc to a version that is not standard for your distribution is not so easy, since practically everything else on the system will depend on the current version. It's probably much less trouble to upgrade the whole system to 18.04 (which uses glibc 2.27), or to install this software on a separate computer running 18.04. – Nate Eldredge Dec 02 '19 at 19:28
  • 1
    This is probably a better question for askubuntu.com since it is not really about programming. – Nate Eldredge Dec 02 '19 at 19:29
  • I want to run the software on Ubuntu 16.04 and so there is no option of updating to 18.04 – Deep Dec 02 '19 at 20:43
  • And I suppose recompiling the software under 16.04 is not an option, nor running it in an 18.04 VM? Otherwise I really don't know any feasible way to go about this. – Nate Eldredge Dec 02 '19 at 22:11
  • Yes, recompiling is not an option nor running it in a 18.04 VM – Deep Dec 02 '19 at 22:24
  • Does this answer your question? [Multiple glibc libraries on a single host](https://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host) – Employed Russian Dec 03 '19 at 02:58

1 Answers1

17

How can I update GLIBC to 2.27 and get rid of the above error?

While it's possible to do, there are some disadvantages:

  1. If you make any mistake in the process, you will render the system un-bootable. Better have recovery media ready and know how to use it to manually mount your root filesystem and repair it.
  2. While GLIBC is highly backward compatible, existing programs that depend on undefined behavior may break.

Your best bet is to run this new program in a chroot environment or in a docker container.

Your next best bet is to install GLIBC-2.27 in parallel with system GLIBC, as described in e.g. this answer.

If you do decide to update the system GLIBC to the new version, the least error-prone way to do so is to download a new package, boot the system from recovery media, mount root filesystem on e.g. /mnt, and unpack the new version on top of it.

Employed Russian
  • 199,314
  • 34
  • 295
  • 362