Linux中國

apt 的 update 和 upgrade 命令的區別是什麼?

如果想讓你的 Ubuntu 或者 Debian 系統保持更新,要用 sudo apt updatesudo apt upgrade 命令組合。

一些以前的教程也會提到 sudo apt-get updatesudo apt-get upgrade

aptapt-get 命令運行起來幾乎一樣,除了一些細微的差別,後面我會討論。

我們首先討論一下 updateupgrade 的區別。這兩個難道不是一樣的嗎?

apt 的 update 和 upgrade 的區別

儘管聽上去運行 apt update 可以給你一個包的最新版本,然而這並不正確。update 命令只會獲得系統上所有包的最新信息,並不會下載或者安裝任何一個包。而是 apt upgrade 命令來把這些包下載和升級到最新版本。

還是有點困惑?讓我來接著解釋。我建議閱讀 包管理器的概念。這個會幫你更好的理解這些東西。

Linux Package Manager Explanation

基本上,你的系統圍繞著一個所有可用包的資料庫(緩存)工作。注意,這個緩存(或者資料庫)並不包含這些包本身,僅僅是關於包的元數據(版本、倉庫、依賴等)。

如果你不更新這個資料庫,系統就不會知道是否有更新的版本。

當你運行 apt update 或者 apt-get update 命令,它會獲取這些包的最新元數據(包的版本等)。

apt update

這時候本地緩存就被更新了,有一些包可以升級。用 sudo apt upgrade 可以升級所有(可升級的)包。

它會顯示要升級的包,並且通過回車(默認選擇是 Y)或者按下 Y 鍵進行確認。要在這個階段取消升級,可以按下 N

apt upgrade

下面這些可能會幫助你記憶:

  • apt update:更新包緩存(可以知道包的哪些版本可以被安裝或升級)
  • apt upgrade:升級包到最新版本

因為有一些管理員命令,需要作為 root 運行。因此需要使用 sudo 配合其他命令。sudo 使你能夠作為 root 在 Ubuntu 和 Debian 上運行命令。

既然理解了 updateupgrade 是如何一起運行的,我們接下來來討論一下 aptapt-get 的用法。

apt 還是 apt-get?應該用哪個?

Debian 和 Ubuntu 使用的是 APT 包管理系統。不要和 apt 命令弄混了。

有許多和 APT 包管理交互的命令;apt-getaptdpkgaptitude 等。

這裡面最受歡迎的就是 apt-get 命令。它是一個 低層級 low-level 且功能豐富的命令。aptapt-get 命令的一個更新而更簡單的版本。

可以讀一下這篇文章來 了解 atp 和 apt-get 命令的不同。下面重點討論這些命令中 updateupgrade 選項的區別。

apt update vs apt-get update

apt-get updateapt 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 get update

apt update output

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 upgradeapt upgrade 命令根據本地包緩存(通過 update 命令更新)的數據,安裝可升級包的最新版本。

然而,apt upgrade 命令會做兩件與 apt-get upgrade 不同的事情。

apt upgrade 命令可以升級 Linux 內核版本,apt-get upgrade 不能。apt-get 命令需要使用 apt-get dist-upgrade 來升級內核版本。

apt-get upgrade command cannot upgrade Linux kernel version

這是因為升級內核版本意味著安裝一個全新的包。apt-get upgrade 命令不能安裝一個新的包。它只能升級現有的包。

apt upgradeapt-get 做的好的另一件小事是,它會在底部顯示一個進度條

apt upgrade progress bar

總結

updateupgrade 兩個詞很相似,這就是為什麼很多新用戶會感到困惑。有時候,我覺得 apt update 命令應該和 apt upgrade 命令合併。

我意思是 upgrade(所有已安裝的包)和 update(本地包元數據緩存)一起完成工作。為什麼要有兩個分開的命令呢?把這兩個領命合成一個 upgrade 命令吧。Fedora 就是這樣對 DNF 命令進行了改進。不過這只是我的觀點。

我希望這篇文章可以解釋一些關於 apt-get updateapt-get upgradeapt update 以及 apt upgrade 命令的問題。

如果有任何問題,請與我聯繫。

via: https://itsfoss.com/apt-update-vs-upgrade/

作者:Abhishek Prakash 選題:lkxed 譯者:Yufei-Yan 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國