当前位置: 首页 > 科技观察

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

时间:2023-03-15 23:11:58 科技观察

apt命令用于Debian和Ubuntu中的包管理。虽然您可能已经熟悉安装和删除选项,但apt还提供了一些附加功能。其中之一是能够查看系统上所有可升级的软件包。要显示它们,您所要做的就是在终端中使用以下命令:aptlist--upgradable如您所见,您甚至不需要使用sudo来列出可升级的包。它只是列出了可以更新的包,并没有更新它们。实际上,当您运行sudoaptupdate命令更新本地包存储库缓存时,apt命令会添加此提示。在17秒(71.4kB/秒)内获取1,243kB读取包列表...完成构建依赖树...完成读取状态信息...完成30个包可以升级。运行“aptlist--upgradable”以查看它们。我不记得旧的apt-get命令中有任何类似的直接选项来列出所有可升级的软件包。这是apt在旧的apt-get命令之上添加的几个新功能之一。让我们更详细地讨论它。列出所有可升级的软件包您在这里应该知道的是,您只能列出可通过APT软件包管理器获得的更新。因此,如果您已将PPA或外部存储库添加到系统的sources.list,您也会看到来自它们的更新。但是您不会在此处获得AppImages、Flatpaks、Snaps或其他一些打包格式的更新。换句话说,它只适用于APT包。因此,要列出Ubuntu或Debian系统上所有可升级的软件包,您应该首先更新本地软件包缓存:sudoaptupdate然后您的系统将知道可用的软件包更新。apt命令告诉您在更新命令结束时有多少包是可升级的:apt命令在apt更新命令输出的底部显示可升级包的数量要查看哪些包是可升级的,请运行以下命令:aptlist?-upgradable你应该看到这样的输出:~$aptlist--upgradableListing...Doneapparmor/jammy-updates3.0.4-2ubuntu2.1amd64[upgradablefrom:3.0.4-2ubuntu2]brave-browser/stable1.40.113amd64[升级自:1.40.107]evolution-data-server-common/jammy-updates,jammy-updates3.44.2-0ubuntu1all[升级自:3.44.1-0ubuntu2]evolution-data-server/jammy-updates3.44.2-0ubuntu1amd64[upgradablefrom:3.44.1-0ubuntu2]列出所有可升级的软件包它按字母顺序列出所有可升级的软件包,以及有关当前安装的版本和新的可用软件包版本的信息。brave-browser/stable1.40.113amd64[upgradablefrom:1.40.107]例如,这表明我的系统上安装了Brave浏览器,版本1.40.107,版本1.40.113可用。你能用这些信息做什么?让我分享一些我能想到的事情。升级所有软件包这可能是大多数普通Ubuntu用户所做的。您可以使用以下命令升级所有可升级的软件包:sudoaptupgrade列出将要升级的软件包,然后要求按Enter或Y确认升级。升级所有包如果您确定要升级所有包,您可以通过在命令中添加-y来跳过“是否要继续”部分。sudoaptupgrade-y模拟升级(但不升级任何包)这是人们在aptlist命令之前所做的。使用mock选项,您实际上不会进行任何更改。它仅显示运行升级时将要安装或升级的包。apt-supgrade您不需要使用sudo(即使我在下面的屏幕截图中使用了它)。使用apt命令运行升级模拟以仅升级选定的包使用apt命令完成。sudoapt--only-upgradeinstallpackage_name实际上,如果您在已安装且有可用更新的包上运行aptinstall命令,它将升级该包。使用--only-upgrade标志,您可以确保软件包仅在安装后才升级。如果尚未安装,它将不会安装给定的包。您还可以通过提供名称来升级选定的几个软件包:sudoapt--only-upgradeinstallpackage1package2您也可以做相反的事情并在升级时保留选定的软件包。sudoapt-markholdpackage_name这样,当你升级所有系统包时,给定的包将不会被升级。您可以使用以下命令删除保留设置:sudoapt-markunholdpackage_name它是否显示内核升级?这有点棘手。当你运行aptlist--upgradable命令时,它会显示所有可以升级的包。但是,如果有更新的内核版本可用,它们可能不会显示,因为内核包名称以linux-headers-x-y开头。这是因为系统将它们视为新包,而不是对已安装包linux-headers-a-b的升级。但是,您仍然会在可升级包列表中看到类型为linux-generic-hwe的包,因为该包将被升级(以使用更新的内核)。总结列出可升级包的能力是apt命令为旧的apt-get命令带来的几个新特性之一。作为桌面用户,我并不总是检查可以升级的软件包。我直接升级。但是,当我管理服务器时,我更喜欢查看有哪些更新可用,然后再决定是否升级。