在 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 命令結束時可以升級多少個軟體包:
要查看可以升級的軟體包,請運行以下命令:
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]
它按字母順序列出所有可升級的軟體包以及有關當前安裝版本和新可用軟體包版本的信息。
brave-browser/stable 1.40.113 amd64 [upgradable from: 1.40.107]
例如,這顯示我系統上安裝了 Brave 瀏覽器,版本 1.40.107,並且版本 1.40.113 可用。
你能用這些信息做什麼?讓我分享一些我能想到的事情。
升級所有包
這可能是大多數普通 Ubuntu 用戶所做的。你可以使用以下命令升級所有可升級包:
sudo apt upgrade
它列出了將要升級的軟體包,然後要求按回車或 Y
確認升級。
如果你確定要升級所有軟體包,則可以通過在命令中添加 -y
來跳過 「Do you want to continue」 部分。
sudo apt upgrade -y
模擬升級(但不升級任何包)
這是人們在 apt list
命令之前所做的。使用模擬選項,你實際上不會進行任何更改。它僅顯示運行升級時將安裝或升級的軟體包。
apt -s upgrade
你不需要使用 sudo
(即使我在下面的截圖中使用了它)。
僅升級選定的包
如果你正在管理一個 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive