问题描述
使用apt-get install <package_name>
时,需要下载依赖项,终端输出附加软件包的名称和总大小,并在下载前要求确认。
但是,当满足依赖关系并且仅下载命名的程序包时,就不会输出大小,也不会进行确认。
使用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 <package>
或aptitude show <package>
将显示有关包装的更多信息,包括包装的尺寸。
仅对于包装尺寸,可以使用:
apt-cache show <package> | grep Installed-Size
要么
aptitude show <package> | grep 'Uncompressed Size'
对于.deb
软件包,可以使用:
dpkg-deb -I <package>.deb | grep Installed-Size
第三种思路
您可以使用”dry run”模式,该模式只是假装下载并安装软件包
$ 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.
第四种思路
This也是正确的,但是大小以字节为单位显示。并且this以更好的格式显示大小,但是如果软件包的大小很小(例如<1MB),则echo 'n'
的in-spite将安装软件包(因为在这种情况下,apt不会提示)。
因此,您可以将--no-download
与--assume-no
结合使用,如下所示:
sudo apt-get --no-download --assume-no install <package_name> | 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.