在银河麒麟v10中,磁盘空间异常减少主因是apt缓存、旧内核或软件数据目录膨胀;可通过dpkg-query查包大小、apt-rdepends+du分析依赖链、ls -ls查/var/cache/apt/archives缓存、ncdu交互扫描/usr与/opt、对比dpkg清单与实际文件五种方法精准定位。

如果您在银河麒麟V10系统中发现磁盘空间异常减少,但无法直观判断是哪些已安装软件包占用了大量空间,则很可能是APT缓存、旧内核或软件包本身的数据目录持续膨胀所致。以下是定位并查看软件包具体空间占用的多种方法:
一、使用apt-show-versions与dpkg结合查询已安装包大小
该方法通过解析dpkg数据库直接获取每个已安装软件包所管理文件的实际磁盘占用,结果最贴近真实空间消耗。
1、打开终端,执行sudo apt update更新软件包索引。
2、安装必要工具:sudo apt install -y apt-show-versions。
3、生成按大小排序的已安装包列表:dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 20。
4、注意输出单位为KB,若某包显示 Installed-Size 异常偏大(如超200MB),需进一步检查其实际文件分布。
二、使用apt-rdepends与du定位依赖链中的空间大户
某些大型软件(如LibreOffice、WPS、Qt开发套件)会通过多层依赖引入大量库文件,仅看主包大小易低估整体影响。此方法可沿依赖关系逐级统计磁盘占用。
1、安装依赖分析工具:sudo apt install -y apt-rdepends。
2、以目标软件为例(如wps-office),执行:apt-rdepends wps-office | grep -v "^ " | xargs -r dpkg -L 2>/dev/null | xargs -r du -sh 2>/dev/null | sort -hr | head -n 10。
3、重点观察输出中路径含 /usr/lib/、/opt/、/usr/share/ 的条目,这些通常是实际二进制和资源文件所在。
三、扫描/var/cache/apt/archives下.deb包体积
APT下载缓存目录中残留的安装包文件虽不计入已安装状态,但长期未清理会显著占用根分区空间,且单个.deb包可达数百MB。
1、进入缓存目录:cd /var/cache/apt/archives。
2、列出体积最大的前10个包:ls -lS | head -n 11。
3、若发现多个以 linux-image-、linux-headers- 开头的大体积.deb包,说明旧内核安装包未被自动清除。
四、用ncdu交互式扫描软件相关目录
ncdu能绕过符号链接与权限限制,对/usr、/opt、/var/lib/dpkg/info等关键路径进行深度扫描,支持键盘导航快速定位高占比子项。
1、安装ncdu:sudo apt install -y ncdu。
2、扫描系统软件核心目录:sudo ncdu /usr --exclude /usr/src --exclude /usr/include。
3、扫描第三方软件集中区:sudo ncdu /opt。
4、在ncdu界面中按d键可预览选定目录内容,当光标停驻在 /usr/lib/firefox/ 或 /opt/kylin-video/ 等路径时,右侧显示的数值即为该软件实际占用空间。
五、检查/var/lib/dpkg/info中包清单与实际文件差异
dpkg维护每个已安装包的文件清单(.list文件),对比清单中路径与当前磁盘实际存在状态,可识别残留文件或异常扩大的配置目录。
1、查找某包(如mysql-server)的清单文件:ls /var/lib/dpkg/info/mysql-server.*list。
2、读取其记录的所有文件路径:cat /var/lib/dpkg/info/mysql-server.list | xargs -r du -sh 2>/dev/null | sort -hr | head -n 5。
3、若输出中出现 /var/lib/mysql/ 目录且体积远超预期,说明数据库数据文件已成为主要空间占用源,而非软件包本身。










