![为什么安装期间的软件包大小与删除期间报告的软件包大小不同?](https://linux22.com/image/1053338/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%89%E8%A3%85%E6%9C%9F%E9%97%B4%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%A4%A7%E5%B0%8F%E4%B8%8E%E5%88%A0%E9%99%A4%E6%9C%9F%E9%97%B4%E6%8A%A5%E5%91%8A%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%A4%A7%E5%B0%8F%E4%B8%8D%E5%90%8C%EF%BC%9F.png)
让我详细说明一下我想要询问的问题。
当我使用
sudo apk-get install blablabla
我得到了输出
After this operation, 39.6 MB of additional disk space will be used.
但是当我执行
sudo apk-get purge blablabla
输出显示我将有 23.4 MB 的额外磁盘空间。是什么造成了差异?
对 Linux 仍不熟悉
答案1
软件包具有所谓的依赖关系。例如,软件包cowsay
依赖于perl
(您可以使用 来验证这一点apt-cache show pkgname
)。当您安装软件包时,apt-get 还会安装其他依赖项,但当删除软件包时 - apt-get 会保留依赖项,并且您必须使用自动删除选项
另一方面,它也不考虑缓存包,即实际下载的.deb
包apt
,然后从中提取内容并进行编译。
检查一下:
$ apt-cache show cowsay | grep -i size
Installed-Size: 88
Size: 18532
所有deb
包裹都有此Installed-Size
信息字段,根据定义,
估计的安装大小(以字节为单位),除以 1024 并向上舍入
(请注意,这是估算值,可能会因实际安装文件的数量而有所不同,并且取决于软件包维护者对细节的细致程度)因此,估算的安装大小为 88*1024 = 90112 或 90.1 kB。这与以下内容相吻合purge
:
After this operation, 90.1 kB disk space will be freed.
在我清除了软件包之后,档案仍然存在:
$ ls /var/cache/apt/archives/cowsay_3.03+dfsg1-6_all.deb
/var/cache/apt/archives/cowsay_3.03+dfsg1-6_all.deb
您可以使用apt-get
标志clean
,autoclean
也可以手动删除它们
答案2
部分原因是因为存在配置(现在我看到您正在清除),但也存在下载 DEB 存档时用尽的缓存空间。