Most of the software in Linux is fragmented, its granularity is much smaller than that of windows, the dependencies between software are strong, and here are some of its own understandings:
I. Software dependencies in Linux
Linux software dependencies into a topological tree structure, such as a direct or indirect dependency B, then B can not directly or indirectly rely on a. Imagine A, b must have a first appearance in the time, and the first appearance can not depend on the emergence of, and if A and b depend on each other is the "chicken and egg" problem, so there must be a first appearance and another dependent on the first person.
Second, Linux software installation and uninstallation
(1) Installing software A must be the first to install all software that a relies on; uninstalling software A must be the first to uninstall all software that relies on a. Such as:
A\
B\
C\
B,c depends on a, then installing B or C ensures that a is present, and unloading a must ensure that both B and C are unloaded.
(2) Uninstall A does not mean to uninstall all the useless software that a depends on, such as: B<--a, after uninstalling a B is useless (because no other software depends on B), Linux by default does not uninstall B, but you can use special parameters to let the system do so.
Under Ubuntu, Apt-get Remove is a general uninstall, while Apt-get Autoremove is unloading the useless software it relies on at the same time.
--------------------------------
Autoremove Pseudo-code:
Autoremove_soft (Entity x) {
Remove x;
For each p in x->parent {
p->child_num--;
if (P->child_num = = 0)
Autoremove_soft (P);
}
}
----------------------------------
sudo apt-get AutoClean clean up older versions of the software cache
sudo apt-get clean cleans all software caches
sudo apt-get remove softname1 softname2 ...
sudo apt-get--purge remove softname1 softname2 ... (also clear the configuration)
sudo apt-get autoremove remove orphaned software that is no longer used by the system
Transferred from: http://www.linuxidc.com/Linux/2010-08/27972.htm
dependencies between Linux software (RPM)