Linux软件依赖关系

2019-03-08  本文已影响0人  wjv

来源:https://www.linuxidc.com/Linux/2010-08/27972.htm

Linux中的软件大部分是零碎的,其粒度比windows的小很多,软件之间的依赖关系很强烈,下面是自己的一些理解:

一、Linux中的软件依赖

Linux中的软件依赖关系成一颗拓扑树结构,比如A直接或间接依赖B,那么B就不可能直接或间接依赖A。试想从时间上A、B必然有一个先出现,而先出现的不可能依赖于后出现的;并且如果A与B互相依赖则就是“鸡与蛋”的问题,因此必然有一个先出现而另一个依赖于先者。

二、Linux的软件安装与卸载

(1)安装软件A必须率先安装A依赖的所有软件;卸载软件A则必须率先卸载依赖A的所有软件。如下图:

a\

b\

c\

b,c依赖于a,那么安装b或c都先要确保a的存在;同时卸载a必须确保b和c都已经被卸载。

(2)卸载A不代表同时卸载A所依赖的所有无用软件,比如:B<--A,卸载A以后B就没用了(因为没有其他软件再依赖B了),Linux默认不卸载B,但可以使用特殊的参数让系统这么做。

Ubuntu下,apt-get remove就是一般的卸载,而apt-get autoremove则是同时卸载其所依赖的无用软件

--------------------------------

autoremove的伪代码:

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 清理旧版本的软件缓存

sudo apt-get clean 清理所有软件缓存

sudo apt-get remove softname1 softname2 ...

sudo apt-get --purge remove softname1 softname2 ...(同时清除配置)

sudo apt-get autoremove 删除系统不再使用的孤立软件

上一篇下一篇

猜你喜欢

热点阅读