歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux隨想——軟件間的依賴關系

Linux隨想——軟件間的依賴關系

日期:2017/2/28 16:32:01   编辑:Linux教程

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 刪除系統不再使用的孤立軟件

Copyright © Linux教程網 All Rights Reserved