0

I'm working with a server farm in my group and the latest version of the ldd library is GLIBC_2.19 which is why get the error "version `GLIBC_2.29' not found".

I can not install a new version on the servers. I'm not an admin and nowhere near the position to ask for that so I need to alter my program. So how do I actively downgrade the version so that my program can run on the server?

Daniel Trugman
  • 8,186
  • 20
  • 41

1 Answers1

0

There are multiple ways to work around this.

Option #1: Compile your application against the oldest GLIBC you want to support

C and CPP applications tend to "lock" the minimal supported ABI when you compile them. If you compile them on a CentOS/RHEL/Oracle 6, then your application should be able to run on any newer OS, because GLIBC libraries are backward compatible.

Option #2: Run your application inside a docker

Build a Docker image that contains your application. That way, any system that can support Docker can run it without any compatibility issues.

Option #3: Statically compile your application

This is probably the most complex of all options. I won't elaborate on this, but basically, if you compile a static executable, you don't need the loader or any libraries from the target host. That complicates the compilation process, might create some issues in run-time and is not as straightforward with complex application, but still doable.

Daniel Trugman
  • 8,186
  • 20
  • 41