|Glibc Installation HOWTO|
|Prev||Chapter 5. Troubleshooting—if something goes wrong...|
The most common mistake is not to have a set of basic, static tools; in this case you can only use the command cd, but nothing else. This is the reason why in this HOWTO I have described in detail how to make those tools static.
The only tool not static is mount and, for good reason in my opinion, it is included in the package of linux-utils, which also contains login, passwd, etc. Since you are not able to use statically-linked versions in combination with PAM or other security-related software, it would be unwise to compile them statically under all circumstances. Of course you are free to do so if you are really sure about what you are doing.
The way back to a working configuration is quite simple if you have the static tools: go to the directory /usr/local/lib/ and move all the newly installed files into another location (eg. /usr/local/lib/storedaway). You may identify them by looking at their version number, which should be the same as the one from your glibc installation (in my example all files fitted to the scheme lib*-2.2.4), and of course by the creation date and time. It is quite uncommon that two different libraries have the same version number at the same time—I, myself, have never experienced such a thing—but just to be sure you do not delete something important to your system, check the date and time of creation. A very useful tool in this case is the Midnight Commander, if you have it installed.
You could try to remove the files ld-2.2.4.so and libc-2.2.4.so and run ldconfig -v afterwards, before removing all the crashed files. This will enable you to use at least most of your programs and in every case you will be able to run the Midnight Commander.
Do not forget to do at least one ldconfig -v after you have removed all the files.
A common cause for problems is that your distribution has stored all the library files in a different location than the newly-installed routine will use, thus it often happens that there are two versions running simultaneously, disturbing each other. In my case, lots of trouble was caused by a second copy of libc6.so lying around in /lib, a symbolic link from this file to the corresponding one in /usr/local/lib fixes this problem.