Meth | apt-get update ,upgarde 和dist-upgrade 的區別


#sudo apt-get update 獲得最近的軟件包的列表;列表中包含一些包的信息,比如這個包是否更新過
#sudo apt-get dist-upgrade 如果這個包沒有發布更新,就不管它;如果發布了更新,就把包下載到電腦上,並安裝。

apt-get update 指令會同步使用者端和APT 伺服器的RPM 索引清單(package list),APT 伺服器的RPM 索引清單置於base 資料夾內,使用者端電腦取得base 資料夾內的bz2 RPM 索引清單壓縮檔后,會將其解壓置放於/var/state/apt/lists/,而使用者使用apt-get install 或apt-get dist-upgrade 指令的時候,就會將這個資料夾內的資料和使用者端電腦內的RPM 資料庫比對,如此一來就可以知道那些RPM 已安裝、未安裝、或是可以升級的。

這里提一下apt-get upgrade 與apt-get dist-upgrade的關系
由於包與包之間存在各種依賴關系。upgrade只是簡單的更新包,不管這些依賴,它不和添加包,或是刪除包。而dist-upgrade可以根據依賴關系的變化,添加包,刪除包。

一般在運行upgrade或dist-upgrade之前,要運行update.

 

但是常常有人會問, upgrade和dist-upgrade有何不同,仔細查查,似乎大家對upgrade和dist-upgrade的解釋都有點不同,在此也紀錄自己的看法. 

我認為apt-get upgrade和dist-upgrade的差別: 

upgrade:系統將現有的Package升級,如果有相依性的問題,而此相依性需要安裝其它新的Package或影響到其它Package的相依性時,此Package就不會被升級,會保留下來. 

dist-upgrade:可以聰明的解決相依性的問題,如果有相依性問題,需要安裝/移除新的Package,就會試着去安裝/移除它. (所以通常這個會被認為是有點風險的升級) 

apt-get upgrade 和 apt-get dist-upgrade 本質上是沒有什么不同的。

只不過,dist-upgrade 會識別出當依賴關系改變的情形並作出處理,而upgrade對此情形不處理。

例如軟件包 a 原先依賴 b c d,但是在源里面可能已經升級了,現在是 a 依賴 b c e。這種情況下,dist-upgrade 會刪除 d 安裝 e,並把 a 軟件包升級,而 upgrade 會認為依賴關系改變而拒絕升級 a 軟件包。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM