Redhat Linux /lib/libc.so.6: version `GLIBC_2.16' not found (required by /lib/libncurses.so.5)

11,747

EDIT: I assume you're using a normal i386 compatible processor.
How did you end up in having ncurses from a new system?
Anyway, here is what you asked for, you can take it from: http://launchpadlibrarian.net/123667354/libc6_2.16-0ubuntu6_i386.deb (launchpad) By extracting the package (for example on Windows using 7zip) and taking libc.so.6 out of it. (in lib/i386-linux-gnu/) For amd64 you just need to adapt it. However do NOT install this package by overwriting! Just use libc.so.6 if that was the workaround, else your server is most likely screwed up. Even though it's from another distribution this normally works.

In case you are on Linux and you don't want to reboot or whatever, here is a way to unpack it on Linux.

# mkdir libc
# cd libc
# ar x ../libc6_2.16-0ubuntu6_i386.deb 
# tar xzf data.tar.gz

now you should have a directory with all .so files in the libc6 package.

Oh, and be careful, libc.so.6 is actually a link to libc-2.16.so here so you want to copy libc-2.16.so and not libc.so.6

Share:
11,747

Related videos on Youtube

Junaid388
Author by

Junaid388

Updated on September 18, 2022

Comments

  • Junaid388
    Junaid388 over 1 year

    I am running a server RHEL 6.4 which currently has GLIBC 2.12 installed on it. We are trying to run a program which gives this error

    /lib/libc.so.6: version `GLIBC_2.16' not found (required by /lib/libncurses.so.5)

    I can't updgrade through a repo since the Server is not connected to Internet.

    The last person did a work around in which he took the libc.so.6 file from a GLIBC_2.16 and changed the link in the /lib file, it seemed to work correctly,

    But I am unable to find the libc.so.6 file for GLIBC_2.16

    Any ideas where I can find the file without competely upgrading the system wide GLIBC.

    If not any work arounds to make that app use the new GLIBC.

  • Junaid388
    Junaid388 over 9 years
    The Server is a a RHEL 6.4 running x86_64. And the the ncurses are for a netezza CLI Cleint. Would it be better if we update the glibc to 2.16 or latest version? If so how can we do it without an internet connection of access to redhat repos. And is it backward compatible and won't cause issue with existing installations.
  • The19thFighter
    The19thFighter over 9 years
  • The19thFighter
    The19thFighter over 9 years
    Upgrading glibc shouldn't be an issue.
  • Junaid388
    Junaid388 over 9 years
    Since I don't have yum, How can I upgrade glibc without while resolving dependencies ?? New to Linux Administation :/
  • The19thFighter
    The19thFighter over 9 years
    rpm.org/max-rpm/s1-rpm-install-performing-install.html You can use rpm -i package.rpm to install a package. However I never used a rpm based distro, so I can't assure it's perfect. access.redhat.com/downloads on the right you should be able to search for packages, if you own a RedHat account. I think you could download the newest glibc there. If this doesn't work access.redhat.com/solutions/10154 You can then install the downloaded rpm, by transferring it to the server. rpm should check dependencies.
  • The19thFighter
    The19thFighter over 9 years
    I just looked around seems 2.12 is the actual stable for 6.4 You could still upgrade (by downloading for example 2.17 from el7) but I wouldn't suggest to do so, as this could have negative effects on the stability. Never change a running system, unless really needed.
  • Junaid388
    Junaid388 over 9 years
    The problem is that the client we need requires a 2.16, I think what has happened in that the sysadmin before me installed ncurses complied with glibc 2.16 and now we are being forced to run this, Either I downgrade all the dependencies or I upgrade the current one.
  • The19thFighter
    The19thFighter over 9 years
    I would suggest do downgrade the current ncurses to a version which is using an older version of glibc, but be careful, it could be that exactly this version is needed by your program, which could be the reason why the sys-admin installed it at all. If that's the case, you would need to recompile the current version of ncurses to work with glibc 2.12. Just check if the old ncurses works with your program. If not you can still revert it back(if you have the pkg). Upgrading glibc is probably the most dangerous thing you can do, and if something should go wrong, it will be a pain to fix that.
  • Junaid388
    Junaid388 over 9 years
    How Can I recomplie the current version of ncurses. I checked the ISO for REDhat and it has the following version are installed from the Redhat Media glibc.x86_64 - 2.12-1.107.el6 ncurses.x86_64 - 5.7-3.20090208.el6 If they are both installed from same media why aren't they compatible with the version of glibc
  • The19thFighter
    The19thFighter over 9 years
    Are you sure no one has overwritten ncurses? Also it could be that not a native version of ncurses gets used and instead one bundled with your software. Using ldd with the path to the exe (your software) should clear things up, or if that doesn't work, use LD_DEBUG=libs as environment variable then >> the output into a file, and check where ncurses got loaded from.
  • Junaid388
    Junaid388 over 9 years
    I checked and the ncurses are being loaded from the proper lib path , I even tried reinstalling glibc and ncurses first but still getting the same error :/ Anyway I can check if there is a library that is dependent on ncurses to run, like ncurses requires glibc to run.
  • Junaid388
    Junaid388 over 9 years
    My Bad, someone had manually placed the so file in the lib folder, and manually created the softlink, deleted the softlink, deleted so file, reinstall ncurses, Ran like a charm