apt 的 update 和 upgrade 命令的區別是什麼?
如果想讓你的 Ubuntu 或者 Debian 系統保持更新,要用 sudo apt update
和 sudo apt upgrade
命令組合。
一些以前的教程也會提到 sudo apt-get update
和 sudo apt-get upgrade
。
apt
和 apt-get
命令運行起來幾乎一樣,除了一些細微的差別,後面我會討論。
我們首先討論一下 update
和 upgrade
的區別。這兩個難道不是一樣的嗎?
apt 的 update 和 upgrade 的區別
儘管聽上去運行 apt update
可以給你一個包的最新版本,然而這並不正確。update
命令只會獲得系統上所有包的最新信息,並不會下載或者安裝任何一個包。而是 apt upgrade
命令來把這些包下載和升級到最新版本。
還是有點困惑?讓我來接著解釋。我建議閱讀 包管理器的概念。這個會幫你更好的理解這些東西。
基本上,你的系統圍繞著一個所有可用包的資料庫(緩存)工作。注意,這個緩存(或者資料庫)並不包含這些包本身,僅僅是關於包的元數據(版本、倉庫、依賴等)。
如果你不更新這個資料庫,系統就不會知道是否有更新的版本。
當你運行 apt update
或者 apt-get update
命令,它會獲取這些包的最新元數據(包的版本等)。
這時候本地緩存就被更新了,有一些包可以升級。用 sudo apt upgrade
可以升級所有(可升級的)包。
它會顯示要升級的包,並且通過回車(默認選擇是 Y
)或者按下 Y
鍵進行確認。要在這個階段取消升級,可以按下 N
。
下面這些可能會幫助你記憶:
apt update
:更新包緩存(可以知道包的哪些版本可以被安裝或升級)apt upgrade
:升級包到最新版本
因為有一些管理員命令,需要作為 root 運行。因此需要使用 sudo
配合其他命令。sudo
使你能夠作為 root 在 Ubuntu 和 Debian 上運行命令。
既然理解了 update
和 upgrade
是如何一起運行的,我們接下來來討論一下 apt
和 apt-get
的用法。
apt 還是 apt-get?應該用哪個?
Debian 和 Ubuntu 使用的是 APT 包管理系統。不要和 apt
命令弄混了。
有許多和 APT 包管理交互的命令;apt-get
、apt
、dpkg
、aptitude
等。
這裡面最受歡迎的就是 apt-get
命令。它是一個 低層級 且功能豐富的命令。apt
是 apt-get
命令的一個更新而更簡單的版本。
可以讀一下這篇文章來 了解 atp 和 apt-get 命令的不同。下面重點討論這些命令中 update
和 upgrade
選項的區別。
apt update vs apt-get update
apt-get update
和 apt update
做的是同樣的事,都是更新本地包緩存,這樣的話你的系統就知道有哪些包的版本是可用的。
從技術上講,其實並沒有區別。然而,apt update
在一個方面比 apt-get update
做的好,它會告訴你可升級的包的數量。
Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease
Fetched 213 kB in 4s (55.8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
apt-get update
甚至不會告訴你包是否可以升級。
從 apt
中可以看到 列出可升級的包,而 apt-get
甚至沒有這個選項。
# apt list --upgradable
Listing... Done
fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1]
libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1]
現在來比較一下兩個命令中 upgrade
的選項。
apt upgrade vs apt-get upgrade
apt-get upgrade
和 apt upgrade
命令根據本地包緩存(通過 update
命令更新)的數據,安裝可升級包的最新版本。
然而,apt upgrade
命令會做兩件與 apt-get upgrade
不同的事情。
apt upgrade
命令可以升級 Linux 內核版本,apt-get upgrade
不能。apt-get
命令需要使用 apt-get dist-upgrade 來升級內核版本。
這是因為升級內核版本意味著安裝一個全新的包。apt-get upgrade
命令不能安裝一個新的包。它只能升級現有的包。
apt upgrade
比 apt-get
做的好的另一件小事是,它會在底部顯示一個進度條。
總結
update
和 upgrade
兩個詞很相似,這就是為什麼很多新用戶會感到困惑。有時候,我覺得 apt update
命令應該和 apt upgrade
命令合併。
我意思是 upgrade
(所有已安裝的包)和 update
(本地包元數據緩存)一起完成工作。為什麼要有兩個分開的命令呢?把這兩個領命合成一個 upgrade
命令吧。Fedora 就是這樣對 DNF 命令進行了改進。不過這只是我的觀點。
我希望這篇文章可以解釋一些關於 apt-get update
、apt-get upgrade
和 apt update
以及 apt upgrade
命令的問題。
如果有任何問題,請與我聯繫。
via: https://itsfoss.com/apt-update-vs-upgrade/
作者:Abhishek Prakash 選題:lkxed 譯者:Yufei-Yan 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive