蝶变:寻找没有反向依赖的软件包
找出所有属于孤儿、用户命令或关键组件的Debian软件包。
当试图制作最小的操作系统时,人们希望尽可能多地摆脱非关键的软件包。在Debian下,apt-cache rdepends --installed 在一个给定的软件包上显示反向依赖,或者是一个依赖它的其他软件包的列表。
下面的bash脚本扫描了所有已安装的软件包,并发出了一个没有任何反向依赖的软件包列表。
没有任何反向依赖关系的软件包可能是以下三种情况之一:
- 孤儿 - 真正不被任何东西使用。
apt-get purge。 - 一个顶级的用户命令,例如
wget - 对启动至关重要的东西。有趣的是,
bash是没有反向依赖的,但很难想象 Debian 在没有它的情况下启动。
好好享受吧!
#!/bin/bash
# provides list of packages that have
# nothing depending on them
for target in `dpkg -l | grep '^ii' | awk '{ print \$2 }'`; do
if [ "`apt-cache rdepends --installed $target | wc -l`" = "2" ]; then
echo "$target"
fi
done