How do I run a program that was compiled against glibc 2.14 on an old system?

I'm unable to update anything. Can I download newest glibc and somehow have the program use it instead of the installed one?


You can download a newer glibc binary, unpack it somewhere, and run the program with

LD_LIBRARY_PATH= /path/to/new/glibc/lib /path/to/new/glibc/lib/ld-linux.so.2 /path/to/program

Running an alternative libc is tricky; you may need to install a bunch of other libraries compiled against this libc. The easiest way to run a program with an alternative libc is to install a more recent distribution under some directory and run selected programs in that directory via chroot. How do I run 32-bit programs on a 64-bit Debian/Ubuntu? explains how to do this on Debian; you can follow similar instructions to install a Debian or Ubuntu system on another distribution, you'll just need to install schroot and debootstrap. Debian jessie and Ubuntu trusty both have GLibc 2.19.

If you don't have root permission, use fakechroot instead of chroot. It's a little trickier, but it should work well enough to install enough libraries to make a typical application run.

  • A chroot would require root permissions, right? – saiarcot895 Jul 9 '15 at 0:09
  • @saiarcot895 Right. If you don't have root permission, you can try fakechroot. – Gilles Jul 9 '15 at 0:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.