First of all, the command probably needs to be: /sbin/ldconfig
Next, you need to locate libdl.so
to see if the file actually exists at all on your system. On my system, it's found in /lib
, and if "locate" does not produce an answer do ls /lib/*libdl*
and ls /usr/lib/*libdl*
just to be make sure. (The "locate" command uses a database that could be out-of-date.)
The loader system in Linux is very flexible, and unlike Windows it does not specify that libraries must be in one certain place nor that only a single version of a library can be installed at one time. (Hence "ldconfig," which builds or rebuilds a search-directory.)
Your immediate concern, though, is not to understand how it works but merely to understand why it is broken. (You can "think about" the fire at your leisure after
you have put it out...)
If you find that the library really isn't there, you need to find out which package(s) contain it and to reinstall those packages. (Hopefully the package-installation software does not require this library.) But the first thing to rule-out is that "it's really there, but the ldconfig-index is not up-to-date and therefore does not see it."
This problem could be very tough to fix if the so-called "busybox" core software is affected... commands like ls
and so-on. Your hands might be well-tied. And if that
is the case, and you can't come up with an immediate
explanation of how it happened, uhh...
you might have been hacked or root-kitted. But for right-now, let us hope for the best.