如何查看哪些软件包可供更新

如何查看哪些软件包可供更新

FreeBSD 用户加入你们的行列。我被要求照看运行 10.04 LTS 的 Ubuntu 服务器。

我看到/usr/lib/update-notifier/update-motd-updates-available服务器上有许多更新,但是我不知道如何判断哪些更新将被更新。

有人能给我指出正确的方向吗,以便我能看到运行时哪些包会得到更新apt-get upgrade

更新:

目前无法回答我自己的问题,因此暂时把这个问题放在这里:

连同apt-get upgrade --dry-run下面的建议, /usr/lib/update-notifier/apt-check -p将列出所有有可用更新的软件包。

答案1

从现在起(Ubuntu 16.04),您可以使用apt list--upgradable标志;

sudo apt update
apt list --upgradable

您将获得一个包含所有可升级包的列表。

答案2

aptitude如果尚未安装,您可以安装。它是在无头设置中管理软件包的绝佳工具。

在此处输入图片描述

否则,如果你只是想看看运行某个程序时会发生什么,使用参数--dry-run,它实际上不会做任何事情,它只会告诉你它做:

来自apt-get 手册页

-s, --simulate, --just-print, --dry-run, --recon, --no-act
          No action; perform a simulation of events that would occur but do
          not actually change the system. Configuration Item:
          APT::Get::Simulate.

          Simulate prints out a series of lines each one representing a dpkg
          operation, Configure (Conf), Remove (Remv), Unpack (Inst). Square
          brackets indicate broken packages with and empty set of square
          brackets meaning breaks that are of no consequence (rare).

通过这种方式将选项添加到命令中

apt upgrade --dry-run

答案3

以下命令将显示存储库中具有可用更新的已安装软件包列表。

dpkg --get-selections | xargs apt-cache policy {} | grep -1 Installed | sed -r 's/(:|Installed: |Candidate: )//' | uniq -u | tac | sed '/--/I,+1 d' | tac | sed '$d' | sed -n 1~2p

答案4

另一种方法是aptitude使用搜索词

aptitude search '~U'

(请注意大写的“U”)

意思是:“搜索所有已安装且可以升级的软件包”。参考:aptitude 用户手册

默认情况下,aptitude search显示每个包的名称、描述和一些标志,但您也可以根据需要调整输出。例如,要仅列出包名称,命令将是:

aptitude search -F '%p' --disable-columns '~U'

--disable-columns避免在行尾填充空格)

相关内容