#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 軟件包。