| 会员登录 立即注册

打印 上一主题 下一主题

在 Ubuntu 中使用 apt 命令列出可升级的软件包

[复制链接]
跳转到指定楼层
楼主
3AAA 发表于 2022-7-29 15:46:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主
3AAA
2022-7-29 15:46:42 4568 0 看楼主


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... DoneBuilding dependency tree... DoneReading state information... Done30 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... Doneapparmor/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

本文由 LCTT原创编译,Linux中国荣誉推出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

3AAA 当前离线
白银会员

查看:4568 | 回复:0

关于我们  |   侵权投诉受理  |   联系我们  |   Archiver  |  
免责声明:邳州信息网所有言论只代表发表者个人观点,与本站无关
Copyright © 2009-2025 pzxxw.com 版权所有:邳州金银杏文化传媒有限公司  

苏公网安备 32038202000401号

快速回复 返回顶部 返回列表