1. 程式人生 > >ununtun學習系列1--- sudo update與upgrade區別

ununtun學習系列1--- sudo update與upgrade區別

在windows中安裝軟體,我們只需要一個.exe的可執行檔案,直接下一步就可以安裝了。但是在每個linux的發行版,例如ubuntu中,都會維護一個軟體倉庫,我們常用的所有軟體都在裡面。這裡面的軟體絕對安全,而且保證能夠正常安裝。

在ubuntu系統中,會維護一個源列表,列表中都是一條一條的網址資訊,每一個網址標識的資訊指向的資料,對應軟體在源伺服器的位置,我們可以編輯檢視源列表。

	
sudo gedit /etc/apt/sources.list

在這個檔案里加入或者註釋(加#)掉一些源後,儲存。這時候,我們的源列表裡指向的軟體就會增加或減少一部分。

如果執行此命令可能會出現錯誤:The owner of /home/zn/.config/ibus/bus is not root!

,這是因為在修改系統檔案時我們不能使用sudo命令去修改,必須使用系統內建的管理員許可權。最簡單的辦法是使用sudo -i 切換。

sudo -i 

sudo -i是Linux終端命令下改變使用者對命令使用許可權的命令,例如,在Linux命令終端中,開始為“[email protected]:~$”,當使用該命令後,會出現輸入密碼的提示,之後輸入密碼,就會變為“[email protected]:~#”,這樣就是改變了使用者對一些命令的許可權。

命令進行後,輸入exit即可登出。

然後執行:

sudo apt-get update
這個命令,會訪問源列表中的每個網址,並讀取軟體列表,儲存到本地電腦。我們在軟體包管理器上看到的軟體列表,就是通過update命令更新的。
最後執行:
sudo apt-get upgrade

這個命令,會把本地已經安裝的軟體和剛下載的軟體列表對應軟體進行對比,如果發現當前安裝的軟體版本過低,就會提示你更新,如果沒有軟體需要更新,則代表安裝的軟體為最新版的。

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

apt-get upgrade和dist-upgrade的差別: 

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

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


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

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