39 command-line apt
使用时apt-get install <package_name>,有需要下载的依赖,终端输出附加包的名称和总大小,下载前要求确认。
但是,当依赖关系得到满足并且只需要下载指定的包时,就没有大小输出,也没有确认。
使用 Synaptic 时,我可以看到安装后将使用的新包的总大小,但无法查看需要下载的大小,只能从一个包到另一个包并使用属性查看压缩后的大小。
我想知道在下载和安装它/它们之前,是否有办法在终端和 Synaptic 中查看软件包的大小?
enz*_*tib 31
在终端中,对于单个包:
apt-cache --no-all-versions show $package | grep '^Size: '
Run Code Online (Sandbox Code Playgroud)
对于不止一个包:
apt-cache --no-all-versions show $packages |
awk '$1 == "Package:" { p = $2 }
$1 == "Size:" { printf("%10d %s\n", $2, p) }'
Run Code Online (Sandbox Code Playgroud)
我不知道 Synaptic。
Rad*_*anu 11
apt-cache show <package>或aptitude show <package>将显示有关包裹的更多信息,包括其大小。
仅对于包装尺寸,您可以使用:
apt-cache show <package> | grep Installed-Size
Run Code Online (Sandbox Code Playgroud)
或者
aptitude show <package> | grep 'Uncompressed Size'
Run Code Online (Sandbox Code Playgroud)
对于.deb包,您可以使用:
dpkg-deb -I <package>.deb | grep Installed-Size
Run Code Online (Sandbox Code Playgroud)
这也是正确的,但大小以字节为单位显示。而这个节目大小更好的格式,但如果包是非常小的(比如<1MB)然后,尽管echo 'n'它会安装包(因为在这种情况下,容易不提示)。
所以,你使用--no-downloadwith--assume-no如下:
sudo apt-get --no-download --assume-no install <package_name> | grep 'Need to get'
Run Code Online (Sandbox Code Playgroud)
这里--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.
Run Code Online (Sandbox Code Playgroud)
最新和最好的方法是使用apt show,其中包括单位:
apt show firefox | grep Size
Installed-Size: 202 MB
Download-Size: 51.7 MB
Run Code Online (Sandbox Code Playgroud)
apt show 可用于在安装之前查看有关软件包的许多其他有用信息,包括版本、依赖项、“中断”、“替换”和描述。
您可以使用“试运行”模式,它只是假装下载和安装软件包
$ 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.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33640 次 |
| 最近记录: |