apt升级非常大,我如何查看单个包的大小?

Gue*_*lla 6 ubuntu apt ubuntu-16.04

当我通常登录服务器并执行apt upgrade更新时,通常最多需要几百MB。我刚刚登录到我的一台仅安装了 virtualmin 的 vps,apt upgrade报告它需要 16.8GB,这比我的可用空间还要多。

这似乎不对。我如何才能看到哪些包需要这么多空间?

vag*_*wal 3

在机器上安装apt-show-versions包:

$ sudo apt-get install apt-show-versions -y

获取可升级的软件包列表:

$ apt-show-versions -u

下面将为您提供可升级包的列表及其相应的大小(字节)(按升序排列):

$ for i in `/usr/bin/apt-show-versions -u | tr ' ' / | cut -f1,6 -d'/' | tr / =` ; do echo -n $i ; sudo apt-cache show $i | grep '^Size:' | cut -d: -f2 ; done | sort -k2 -n
Run Code Online (Sandbox Code Playgroud)

快速分解上述命令:

  • /usr/bin/apt-show-versions -u | tr ' ' / | cut -f1,6 -d'/' | tr / =提供软件包列表及其可升级版本,格式为packagename=version
  • sudo apt-cache show $i | grep '^Size:'获取包的大小
  • sort -k2 -n按升序显示格式化输出

了解安全更新:

$ apt-show-versions -u | grep security

配置安全自动更新通常是一个好习惯:

$ sudo apt-get install unattended-upgrades -y

如果已安装无人值守升级,并且您希望确保将其配置为自动应用安全更新:

$ sudo dpkg-reconfigure unattended-upgrades

  • 2736502 字节 = 2.736502 兆字节,甚至还不够接近 75.0 MB。我只能推测 /var/cache/apt 中已经有一些可用的软件包。我在两个单独的服务器上尝试了这个: `for i in $(/usr/bin/apt-show-versions -u | tr ' ' / | cut -f1,6 -d'/' | tr / =) ; 执行 echo -n $i ;sudo apt-cache 显示 $i | grep '^大小:' | 剪切-d:-f2;完成 | awk '{total+=$2}END{printtotal/1000/1000}'` 并且输出“非常”接近 aptupgrade 提供的值。apt-cache 显示中的 *Size* 值可能是 .deb 包的大小。 (2认同)