Mir*_*lov 113 disk-usage apt
我的根分区上的磁盘空间不足,所以我想从系统中删除一些应用程序。如何查看哪些软件包使用了最多的磁盘空间?是否可以从aptitude?
我了解通用磁盘空间分析器,例如df或baobab,但我需要已安装应用程序的解决方案。
小智 149
最简单的方法(不安装额外的软件包)是:
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
Run Code Online (Sandbox Code Playgroud)
它以估计的大小顺序显示包,以千字节为单位,最后一个最大的包。
不幸的是,至少在某些系统上,此列表包括已删除但未清除的软件包。所有这些包都可以通过运行来清除:
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想清除已卸载的软件包,您可以使用此变体从列表中过滤掉不处于“已安装”状态的软件包:
dpkg-query -Wf '${db:Status-Status} ${Installed-Size}\t${Package}\n' | sed -ne 's/^installed //p'|sort -n
Run Code Online (Sandbox Code Playgroud)
kil*_*ist 74
最简单的就是跑wajig large。包裹应该是一个apt-install-away。
这是其他方法的两个链接:
还要记住,安装的大小只是包占用的空间的一部分。压缩版本可能仍在缓存中,这也会占用一些空间。您可以使用apt-get clean.
Bra*_*iam 28
既然你想see which [installed] software packages use the most disk space[,] from aptitude……当然可以用aptitude!通过它的 CLI 或 {interactive, TUI, non-CLI} 很棒。让我们先讨论 CLI,然后再讨论 TUI。无论哪种方式,您只需要知道
显示哪些已安装的软件包使用最多磁盘空间的最基本命令行可能是
aptitude search --sort '~installsize' --display-format '%p %I' '~i' | head
Run Code Online (Sandbox Code Playgroud)
所以让我们分解一下:
--sort是包裹排序顺序,并~installsize指定包裹排序策略。installsize表示“按(估计)安装大小排序”,前面~表示降序排序(因为所有排序策略的默认值都是升序)。--display-format更改<you guessed :->. 该格式字符串 '%p %I'告诉aptitude输出包的名称,然后安装尺寸。'~i'告诉aptitude只搜索已安装的软件包。head或less或文件,或者只是wc -l看看有多少行aptitude会被返回。你可能还想
aptitude显示时使用的线宽(以字符为单位),使用--width <your desired integer value/>. aptitude将默认为它认为是您的终端宽度,但有时它猜错了,有时您想写入文件等。在格式字符串中显示更多信息,或更改字段宽度。例如,我的增强格式字符串'%30p %I %r %60d'显示
%30p : 字段中的包名 width=30 char%I : 估计安装大小%r : '反向依赖计数': 依赖这个包的其他已安装包的大致数量%60d : 字段宽度=60 字符中的包的简短描述请注意,如果您在输出字段中没有看到更改,则可能需要设置--width.
...你也可以在 {interactive, TUI} 中做这种事情aptitude。例如,要设置显示格式首选项,
%I到所需位置的当前值要将搜索限制在交互式中已安装的软件包aptitude,
L)~i在对话框中输入要在交互式中按安装大小排序aptitude,
S)installsize在对话框中输入参考:
aptitude包搜索模式,请参阅https://aptitude.alioth.debian.org/doc/en/ch02s04s05.html#tableSearchTermQuickGuideaptitude包排序策略,请参阅https://aptitude.alioth.debian.org/doc/en/ch02s05s01.html#secSortingPolicyaptitude输出显示格式,请参阅https://aptitude.alioth.debian.org/doc/en/ch02s05s01.html#secDisplayFormatdfc*_*dfc 12
如果您不想安装wajig。我想每个人都安装了 debian-goodies:
dpigs - Show which installed packages occupy the most space
Run Code Online (Sandbox Code Playgroud)
ter*_*don 11
首先,使用像一个工具baobab(sudo apt-get install baobab)向您展示其中正在使用该空间:

这将为您提供一个很好的图形概览,并帮助您缩小占用空间的范围。您还可以使用du以下命令在命令行上获取此信息:
$ sudo du -ch /
Run Code Online (Sandbox Code Playgroud)
通过sort(假设 GNU sort,在 Debian 中应该是这种情况)以按目录大小排序:
$ sudo du -ch / | sort -h
Run Code Online (Sandbox Code Playgroud)
下一步,您可以使用此命令查看特定包使用了多少空间:
$ sudo apt-get --assume-no --purge remove "PACKAGE_NAME" | grep "be freed" |
awk '{print $4, $5}'
Run Code Online (Sandbox Code Playgroud)
例如,在我的系统上,删除所有texlive软件包将释放 1,502 MB:
$ sudo apt-get --assume-no --purge remove "texlive*" | grep "be freed" |
awk '{print $4, $5}'
1,502 MB
Run Code Online (Sandbox Code Playgroud)
最后,您可以使用以下命令获取所有已安装软件包的信息:
$ for i in $(dpkg -l | awk '($1=="ii"){print $2}'); do
echo -e "$i\t"$(sudo apt-get --assume-no --purge remove "$i" |
grep "be freed" | awk '{print $4, $5}');
done
Run Code Online (Sandbox Code Playgroud)
您可以使用wajig包,以及命令
wajig large
Run Code Online (Sandbox Code Playgroud)
帮助解释了它的作用。
wajig large -h
usage: wajig large [-h]
List size of all large (>10MB) installed packages
Run Code Online (Sandbox Code Playgroud)
另请参阅项目页面。
小智 5
要添加其他答案,如果您喜欢命令行,可以使用好旧的durep
# durep -td 1 /etc # or -td 2
[ /etc 319.4K (60 files, 43 dirs) ]
90.2K [######## ] 28.26% apache2/
27.5K [## ] 8.62% apt/
23.7K [## ] 7.43% mime.types
19.7K [# ] 6.18% cron.daily/
18.7K [# ] 5.87% services
18.0K [# ] 5.64% security/
14.7K [# ] 4.61% init.d/
13.2K [# ] 4.13% ssl/
11.1K [# ] 3.48% ld.so.cache
9.0K [ ] 2.81% locale.gen
7.8K [ ] 2.43% pam.d/
4.5K [ ] 1.42% default/
4.3K [ ] 1.35% skel/
2.9K [ ] 0.92% locale.alias
Run Code Online (Sandbox Code Playgroud)
您可能可以使用释放空间localepurge
# dpkg-reconfigure localepurge
# localepurge
localepurge: Disk space freed in /usr/share/locale: 26160 KiB
localepurge: Disk space freed in /usr/share/man: 1304 KiB
Total disk space freed by localepurge: 27464 KiB
Run Code Online (Sandbox Code Playgroud)
最后,您可能可以摆脱有时会占用大量空间的图标和字体。详情请参阅本网站
https://ownyourbits.com/2017/02/18/squeeze-disk-space-on-a-debian-system/
(示例摘自 ownyourbits)