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


29

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

但是,当满足依赖关系并且仅下载命名的程序包时,就不会输出大小,也不会进行确认。

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

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

Answers:


27

在终端中,对于单个包装:

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。


这是什么单位?
tatsu

我想那Size是字节,Installed-Size也是KiB,但是我不知道是否在任何地方定义了它。例如Firefox版本:apt-cache show firefox | grep -E "Package:|Version:|Size:"
Mikko Rantalainen

如今,预期的人为CLI apt。例如,apt show firefox | grep Size
Mikko Rantalainen

发现documentaton:本apt-cache show会发出文件中指定的实际值debian/control的文档Installed-Size可以在这里找到:debian.org/doc/debian-policy/...
米克Rantalainen

11

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

1
它也会显示依赖关系的大小吗?
快球

@Tachyons问题是:“ 有什么方法可以获取包装尺寸? ”。如果您对依赖项大小感兴趣,可以使用“ 询问问题”按钮询问其他问题。
RaduRădeanu2013年

1
但是,包括部门的大小可以使您的答案有效。只是建议我的朋友,:)
rɑːdʒɑ

1
@Jaidpkg-deb -I <package>.deb | grep Installed-Size
RaduRădeanu'13

3
对我来说,它返回68 ... MB?GB?汤匙?
puk

5

您可以使用“空运行”模式,该模式仅假装下载并安装软件包

$ 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.

尝试过,但看不到尺寸。这行代码:需要获取x个档案。打开包装后,将使用x。没有显示。

1
抱歉,这不是apt-get(我有一个shell别名)。更新。该解决方案的优点是可以显示您真正需要下载的内容(不计算已经安装的依赖项)。
亚当·伯特

5

也是正确的,但是大小以字节为单位显示。而这个节目大小更好的格式,但如果包是非常小的(比如<1MB)然后,尽管echo 'n'它会安装包(因为在这种情况下,容易不提示)。

因此,您可以使用--no-download具有--assume-no如下:

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

这里--no-download主张不要下载软件包,--assume-no是在没有n提示的情况下假设为no()。

例:

$ 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.

这个答案很好,因为它还包括依赖项。为了显示将要用完的“实际”存储,请使用grep表示“其他磁盘空间”
Panki

0

您可以尝试使用以下命令查看特定软件包需要下载的档案大小。

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

@enzotib的答案很好,但是它显示了需要以mb格式而不是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

echo 'n' | sudo apt-get install <package>如果软件包很小,仍会加星安装软件包
Pandya
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.