Error while loading shared libraries: libdl.so.2 (and others), no such file. Libraries exist

29,732

I feel lucky in stumbling across this solution, but wanted to post it up in case anyone else runs across this issue in installing legacy software.

Assuming the install anywhere script is called Install.bin

# cp Install.bin Install.bak
# cat Install.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > Install.bin
# rm Install.bak

This worked nicely.

The fix was originally posted on the Zend Knowledgebase (now 404'ed), it is still archived on linuxquestions.org.

Share:
29,732

Related videos on Youtube

Gbo
Author by

Gbo

Updated on September 18, 2022

Comments

  • Gbo
    Gbo almost 2 years

    Attempting to install a Java application from a .bin file. When opening the installer from command line, I see these errors:

    [boxen]# ./ZendStudio-5_2_0.bin 
    Preparing to install...
    Extracting the JRE from the installer archive...
    Unpacking the JRE...
    Extracting the installation resources from the installer archive...
    Configuring the installer for this system's environment...
    awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
    dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    /bin/ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    hostname: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
    
    Launching installer...
    
    grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    /tmp/install.dir.7515/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
    

    ...

    The catch is that every one of these objects exist on the system.

    # locate libdl.so.2
    /usr/lib/libdl.so.2
    /usr/lib64/libdl.so.2
    
    # locate libc.so.6
    /usr/lib/libc.so.6
    /usr/lib/i686/nosegneg/libc.so.6
    /usr/lib64/libc.so.6
    
    # locate libnsl.so.1
    /usr/lib/libnsl.so.1
    /usr/lib64/libnsl.so.1
    

    If I issue this,

    echo $LD_LIBRARY_PATH
    

    I get nothing.

    So, I add include directories to the path:

    [boxen]# LD_LIBRARY_PATH=/usr/lib:/usr/lib64/:/usr/local/lib/:/usr/local/lib64/
    [boxen]# echo $LD_LIBRARY_PATH
    /usr/lib:/usr/lib64/:/usr/local/lib/:/usr/local/lib64/
    

    And re-run the installer...

    [boxen]# ./ZendStudio-5_2_0.bin 
    Preparing to install...
    Extracting the JRE from the installer archive...
    Unpacking the JRE...
    Extracting the installation resources from the installer archive...
    Configuring the installer for this system's environment...
    awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
    dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    /bin/ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    hostname: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
    
    Launching installer...
    
    grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    /tmp/install.dir.8055/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
    

    ...

    Exact same batch of errors.

    Installed Java version:

    java version "1.7.0_65"
    OpenJDK Runtime Environment (rhel-2.5.1.2.el7_0-x86_64 u65-b17)
    OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
    

    Installed glib:

    # rpm -qa | grep glibc
    glibc-2.17-55.el7.i686
    glibc-2.17-55.el7.x86_64
    glibc-headers-2.17-55.el7.x86_64
    glibc-common-2.17-55.el7.x86_64
    glibc-devel-2.17-55.el7.x86_64
    

    What could be causing the installer to not see files that are plainly there and in the environment variable?

    • G-Man Says 'Reinstate Monica'
      G-Man Says 'Reinstate Monica' almost 10 years
      Did you export LD_LIBRARY_PATH? If you just say LD_LIBRARY_PATH=(value), then it's visible only to the shell itself, and not to programs.
    • Gbo
      Gbo almost 10 years
      Yes, but this wasn't the issue. Just posted the answer: unix.stackexchange.com/a/152862/20107