Why is /lib/libc.so.6 missing?

find | grep libc.so.6

discloses that it remains in /lib/i386-linux-gnu/libc.so.6, yet a manuscript I was running anticipated it to be straight under /lib, so why isn't there at the very least a symlink?

Would certainly I take the chance of damaging anything if I placed a symlink there?

2022-06-07 14:32:22
Source Share
Answers: 3

Just add symlink to the libc.so.6 documents as adhering to:

sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6

The very same goes with various other missing out on documents still on the system, in my instance Matlab was missing out on the documents, the trouble is gone currently.

2022-06-10 15:37:07

Dynamic libraries are filled by the kernel, the courses are not hardcoded in a program. A program simply claims "I require libc.so.6 ". The system after that looks in collection courses as specified in /etc/ld.so.conf, consisting of /usr/lib and also /lib by default. This documents consists of added arrangement files in /etc/ld.so.conf.d.

On my 64 little bits system, libc.so.6 can be located in /lib/x86_64-linux-gnu/libc.so.6 as a result of the course specified in /etc/ld.so.conf.d/x86_64-linux-gnu.conf:

# Multiarch support

To figure out what collection is filled by a program, usage ldd as in ldd /bin/bash:

    linux-vdso.so.1 =>  (0x00007ffff1dff000)
    libncurses.so.5 => /lib/libncurses.so.5 (0x00007f9d8b3b8000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)

Putting the symlink would certainly not damage anything.

To get a checklist of directory sites that are looked, run:

ldconfig -v -N | grep '^/'

-v creates a checklist of documents+directory sites to be revealed, -N protects against the cache (/etc/ld.so.cache) from being recreated.

2022-06-07 14:56:28

libc.so was relocated as component of the multiarch operate in Ubuntu 11.04. The factor that there can not be a symlink there is that the objective of multiarch is to make it feasible to install both the i386 and also amd64 variations of libc at the very same time to make sure that you can run 32 - little bit binaries extra conveniently on 64 - little bit systems and also the other way around (and also various other comparable scenarios). If the libc6 plan had a symlink to the new area, after that the variations of that plan for various styles would not both be installable at the very same time (which variation of the symlink would certainly dpkg select?), beating the whole factor of the workout.

Anything that hardcodes the course to libc.so have to be upgraded to function effectively from Ubuntu 11.04 onwards. If the manuscript you are speaking about becomes part of Ubuntu, please record a bug on it and also add the multiarch tag.

2022-06-07 14:52:44