如何在下载前使用apt时确定包的大小?

使用apt-get install ,如果需要下载依赖项,终端会输出其他软件包的名称和总大小,并在下载前要求确认。

但是,当满足依赖关系并且只需要下载命名包时,没有大小输出并且没有确认。

使用Synaptic时,我可以看到安装后将使用的新软件包的总大小,但无法查看需要下载的大小,除了从软件包转到软件包并使用属性查看压缩大小。

我想知道在下载和安装它们之前是否有办法在终端和Synaptic中查看软件包的大小?

在终端中,对于单个包:

 apt-cache --no-all-versions show $package | grep '^Size: ' 

超过一个包:

 apt-cache --no-all-versions show $packages | awk '$1 == "Package:" { p = $2 } $1 == "Size:" { printf("%10d %s\n", $2, p) }' 

我不知道Synaptic。

apt-cache show aptitude show 将显示有关包的更多信息,包括其大小。

仅适用于包装尺寸,您可以使用:

 apt-cache show  | grep Installed-Size 

要么

 aptitude show  | grep 'Uncompressed Size' 

对于.deb包,您可以使用:

 dpkg-deb -I .deb | grep Installed-Size 

您可以使用“干运行”模式,它只是假装下载和安装软件包

 $ aptitude install -sy xlockmore The following NEW packages will be installed: xlockmore 0 packages upgraded, 1 newly installed, 0 to remove and 27 not upgraded. Need to get 194 kB of archives. After unpacking 373 kB will be used. Would download/install/remove packages. 

这也是正确的,但大小以字节显示。 这显示了更好格式的大小,但如果包的大小非常小(比如<1MB),那么尽管有echo ‘n’ ,它将安装包(因为在这种情况下,apt不会提示)。

所以,你使用--no-download with --assume-no如下:

 sudo apt-get --no-download --assume-no install  | grep 'Need to get' 

这里--no-download争辩说不下载包而且--assume-no是假设没有( n )以防任何提示。

例:

 $ sudo apt-get --no-download --assume-no install ttf-devanagari-fonts 2>/dev/null | grep 'Need to get' Need to get 938 kB of archives. 

您可以尝试以下命令来查看特定包需要下载的archieves的大小。

 echo 'n' | sudo apt-get install package | awk '/^Need to get/ {print $4,$5}' 

@enzotib答案很好,但它显示了需要以其他格式下载的档案的大小,而不是以mb为单位。 但是这个命令会显示Mb的大小。

例:

 $ apt-cache --no-all-versions show chromium-browser | grep '^Size: ' Size: 41493718 $ echo 'n' | sudo apt-get install chromium-browser | awk '/^Need to get/ {print $4,$5}' 44.4 MB