3

I am trying to run an app but I get

...
/usr/lib64/libstdc++.so.6: VERSION 'GLIBCXX_3.4.15' not found
/lib64/libc.so.6: VERSION 'GLIBC_2.15' not found
/lib64/libc.so.6: VERSION 'GLIBC_2.14' not found
...

When I do "strings /usr/lib64/libstdc++.so.6 | grep GLIBC" i get a normal list...

...
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
...
GLIBCXX_3.4.13
GLIBCXX_2.2.5
GLIBCXX_2.3.2
...

I don't seem to find a simple tutorial on how to install the missing libs/files/dependencies, (or Centos 6.5 or anything else for that mater).

Can someone explain how to install whatever might be missing on Centos?

nemequ
  • 16,623
  • 1
  • 43
  • 62
FFMG
  • 1,208
  • 1
  • 10
  • 24
  • if you cant install/upgrade that version, get centos box from docker and run inside. – YOU Jan 23 '16 at 09:36

1 Answers1

2

Can someone explain how to install whatever might be missing on Centos?

You need glibc >= 2.15 and libstdc++ >= 3.4.15.

In theory, installing e.g. glibc-2.19 on the system should work (glibc provides backward binary compatibility), but this message suggests that you would not find a standard package for your OS with such an upgrade.

Instead you would have to either install a second version of glibc, as documented here, and redirect your application to use that version by binary-patching the loader encoded into the application, or run your application in a chroot (where you can install any version of glibc you like).

Similar considerations apply to libstdc++.so.6 as well, except you don't have to install it into the fixed location -- you can install newer copy anywhere, and point LD_LIBRARY_PATH to it.

Your final (and most likely easiest) alternative is to build the app you are trying to run from source, or obtain a pre-built binary for your distribution (one that doesn't require newer libraries than what you have).

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