I am trying to run a really old application that was compiled on the 2.6.24 kernel.
The kernel version is irrelevant.
Your application was compiled on a system using GLIBC-2.14
(or newer), so it's not that old (GLIBC-2.14
was released on 2011-06-01).
./deskewDeslant: /lib/libc.so.6: version 'GLIBC_2.14' not found (required by ./deskewDeslant)
The error above means that your current GLIBC is too old.
./deskewDeslant: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by ./deskewDeslant)
The error above means that your libstdc++.so
is also too old.
I am currently using libc version 2.7. How do I downgrade the version to 2.14 ?
You believe that version 2.7
is newer than version 2.14
, but the inverse is true. You need to upgrade your GLIBC
from 2.7
to 2.14
(or newer).
In general, a given OS distribution will never upgrade GLIBC
from the one it originally shipped with (the risk of breaking older applications is deemed too high). This is why your apt-get install libc6
does nothing.
Therefore, your choices are:
- upgrade the entire distribution, or
- obtain a binary compiled for your (old) distro, or
- install a newer version of
GLIBC
, or
- install a newer version of
GLIBC
in non-default location.
Option #2 is the simplest.
Option #1 may be the best (you would get security fixes, and other applications you download will work out of the box).
Option #3 is very risky: in addition to potentially breaking existing applications in subtle ways, upgrading system libc is the easiest way to render your system unbootable if you make a mistake in the update process.
Option #4 is quite involved technically. You can find more details here.