You don't have to be around Linux for long before you hear about "the
dependency problem," which is no problem at all for many users - until the
day it bites them. In a nutshell, the problem is that most Linux applications
depend on the operating system to provide various pieces of functionality
that the applications need. These components most often take the form of
shared libraries that are dynamically loaded and linked to the application at
runtime. Problems occur when one or more of these libraries are replaced with
a different (usually newer) version. Provided all the interfaces remain the
same and the semantics of the functionality remain the same, there's no
problem. However, due to security fixes, bug fixes, or new or improved
functionality, the interfaces and semantics can and do change, and the
changes can be enough to break the application.
In general, i... (more)