Linux中國

在 Ubuntu 中使用 apt 命令列出可升級的軟體包

apt 命令 用於 Debian 和 Ubuntu 中的包管理。雖然你可能已經熟悉安裝和刪除選項,但 apt 還提供了一些額外的功能。

其中之一是能夠查看系統上所有可升級的軟體包。要顯示它們,你所要做的就是在終端中使用以下命令:

apt list --upgradable

如你所見,你甚至不需要使用 sudo 來列出可更新的包。它只是列出了可以更新的包,而不會更新它們。

實際上,當你運行 sudo apt update 命令更新本地包倉庫緩存時,apt 命令會添加此提示。

Fetched 1,243 kB in 17s (71.4 kB/s)           
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
30 packages can be upgraded. Run 'apt list --upgradable' to see them.

我不記得在舊的 apt-get 命令中有任何類似的直接選項來列出所有可升級的包。這是 apt 在舊的 apt-get 命令之上添加的幾個新功能之一。

讓我們更詳細地討論一下。

列出所有可升級的包

你在這裡應該知道的是你只能列出通過 APT 包管理器可用的更新。因此,如果你已將 PPA 或 外部倉庫 添加到系統的 sources.list,你也將看到來自它們的更新。

但是你不會在這裡獲得 AppImage、Flatpak、Snap 或一些其他打包格式的更新。

換句話說,它只適用於 APT 包。

因此,要列出 Ubuntu 或 Debian 系統上的所有可升級包,你應該首先更新本地包緩存:

sudo apt update

然後你的系統將知道可用的軟體包更新。apt 命令告訴你在 update 命令結束時可以升級多少個軟體包:

The apt command shows the number of upgradable packages at the bottom of the apt update command output

要查看可以升級的軟體包,請運行以下命令:

apt list --upgradable

你應該看到這樣的輸出:

~$ apt list --upgradable 
Listing... Done
apparmor/jammy-updates 3.0.4-2ubuntu2.1 amd64 [upgradable from: 3.0.4-2ubuntu2]
brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107]
evolution-data-server-common/jammy-updates,jammy-updates 3.44.2-0ubuntu1 all [upgradable from: 3.44.1-0ubuntu2]
evolution-data-server/jammy-updates 3.44.2-0ubuntu1 amd64 [upgradable from: 3.44.1-0ubuntu2]

Listing all the upgradable packages

按字母順序列出所有可升級的軟體包以及有關當前安裝版本和新可用軟體包版本的信息。

brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107]

例如,這顯示我系統上安裝了 Brave 瀏覽器,版本 1.40.107,並且版本 1.40.113 可用。

你能用這些信息做什麼?讓我分享一些我能想到的事情。

升級所有包

這可能是大多數普通 Ubuntu 用戶所做的。你可以使用以下命令升級所有可升級包:

sudo apt upgrade

它列出了將要升級的軟體包,然後要求按回車或 Y 確認升級。

Upgrade all packages

如果你確定要升級所有軟體包,則可以通過在命令中添加 -y 來跳過 「Do you want to continue」 部分。

sudo apt upgrade -y

模擬升級(但不升級任何包)

這是人們在 apt list 命令之前所做的。使用模擬選項,你實際上不會進行任何更改。它僅顯示運行升級時將安裝或升級的軟體包。

apt -s upgrade

你不需要使用 sudo(即使我在下面的截圖中使用了它)。

Running an upgrade simulation with apt command

僅升級選定的包

如果你正在管理一個 Ubuntu 伺服器,並且你不想升級所有軟體包,而只想升級少數選定的軟體包中的一個(如 MySQL/Ngnix),你可以使用 apt 命令輕鬆完成。

sudo apt --only-upgrade install package_name

實際上,如果你在已安裝且有可用更新的軟體包上運行 apt install 命令,它將升級該軟體包。

使用 --only-upgrade 標誌,你可以確保僅升級軟體包(如果已安裝)。如果尚未安裝,它將不會安裝給定的包。

你還可以通過提供名稱來升級選定的幾個包:

sudo apt --only-upgrade install package1 package2

你也可以做相反的事情,升級時保留選定的軟體包

sudo apt-mark hold package_name

這樣,當你升級所有系統包時,將不會升級給定的包。

你可以使用以下命令刪除保留設置:

sudo apt-mark unhold package_name

是否顯示內核升級?

這有點棘手。

當你運行 apt list –upgradable 命令時,它會顯示所有可以升級的包。

但是如果有新的內核版本可用,它們可能不會顯示,因為內核包名稱以 linux-headers-x-y 開頭。這是因為系統將它們視為新包,而不是對已安裝的包 linux-headers-a-b 的升級。

但是,你仍然會在可升級包列表中看到 linux-generic-hwe 類型的包,因為該軟體包將被升級(使用較新的內核)。

總結

列出可升級包的能力是 apt 命令為舊的 apt-get 命令帶來的幾個新功能之一。有關此主題的更多信息,你可以閱讀我 解釋 apt 和 apt-get 命令之間的區別 的文章。

作為桌面用戶,我並不總是檢查可以升級的軟體包。我直接去升級。但是,當我管理伺服器時,我更喜歡查看可用的更新,然後決定是否進行升級。

你呢?你覺得這個功能對你自己有用嗎?

via: https://itsfoss.com/apt-list-upgradable/

作者:Abhishek Prakash 選題:lkxed 譯者:geekpi 校對: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中國