如何在下载前使用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