apt的update和upgrade區別
一些以前的教程也會提到 sudo apt-get update 和 sudo apt-get upgrade。apt 和 apt-get 執行起來幾乎一樣,除了一些細微的差別,後面我會討論。我們首先討論一下 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 的用法。
Debian 和 Ubuntu 使用的是 APT 包管理系統。不要和 apt 命令弄混了。
有許多和 APT 包管理互動的命令;apt-get、apt、dpkg、aptitude 等。
這裡面最受歡迎的就是 apt-get 命令。它是一個低層級low-level且功能豐富的命令。apt 是 apt-get 命令的一個更新而更簡單的版本。
可以讀一下這篇文章來 瞭解 atp 和 apt-get 命令的不同。下面重點討論這些命令中 update 和 upgrade 選項的區別。
apt-get update 和 apt update 做的是同樣的事,都是更新本地包快取,這樣的話你的系統就知道有哪些包的版本是可用的。
從技術上講,其實並沒有區別。然而,apt update 在一個方面比 apt-get update 做的好,它會告訴你可升級的包的數量。
Hit:15 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-get upgrade 和 apt upgrade 命令根據本地包快取(透過 update 命令更新)的資料,安裝可升級包的最新版本。
然而,apt upgrade 命令會做兩件與 apt-get upgrade 不同的事情。
apt upgrade 命令可以升級 核心版本,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 命令的問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2914889/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- apt 和 apt-get 之間有什麼區別?apt-get
- snap和apt的區別簡單瞭解[]APT
- linux 中 yum makecache 、yum update、yum upgrade的作用Linux
- Linux中apt和apt-get命令有什麼區別?如何使用?Linuxapt-get
- 包管理工具apt-get和yum的區別apt-get
- TDengine 3.0 的 Update 有何區別?
- apt-get update 和 apt-get install 寫在同一個 RUN 指令的解讀apt-get
- sudo apt-get update | grep "Failed"apt-getAI
- sudo apt update時報錯 E: Unable to lock directory /var/lib/apt/lists/APT
- Oracle中select for update ...一些區別Oracle
- Oracle中的for update 和 for update nowaitOracleAI
- ../和./和/的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- ||和??的區別
- /*和/**的區別
- Linux中wget、yum與apt-get用法及區別Linuxwgetapt-get
- ubuntu apt update 提示 The repository ‘http://xxx Release‘ does not have a Release fileUbuntuAPTHTTP
- Linux學習之出現無法apt-get updateLinuxapt-get
- Ubuntu學習之apt-get update 升級錯誤Ubuntuapt-get
- makefile =和:=的區別
- ++a和a++的區別
- ./ 和sh 的區別
- jquery $(this) 和this的區別jQuery
- JQuery this和$(this)的區別jQuery
- T和?的區別
- 執行update語句,用沒用到索引,區別大嗎?索引
- 和區別
- law和statute的區別
- thorough和comprehensive的區別
- Velocity和speed的區別
- prerogative和privilge的區別
- postEvent 和 sendEvent的區別dev
- foster和nurture的區別
- @Valid和@Validated的區別
- url和uri的區別
- BeanFactory 和 ApplicationContext 的區別BeanAPPContext
- CAE和CAD的區別