我正在考虑编写一个执行此操作的脚本:
- 浏览 /usr/lib 中的每个文件
dpkg -s
对每个文件进行搜索。- 报告不属于任何 .deb 包的“孤立”文件列表。
我的想法是,随着时间的推移,我安装了很多make install
软件,我想获取我后来删除的手动安装的软件的剩余文件列表。
答案1
find /usr/lib -type f -exec dpkg -S {} + 2>&1 >/dev/null | sed -r 's/^[^/]+//'
我现在警告你:它很慢。
答案2
您可以运行以下命令
join -t '' -v1 <(find /usr/lib | sort) \
<(grep -h /usr/lib /var/lib/dpkg/info/*.list | sort -u)
/usr/lib
将 中的文件列表与 中存在的至少一个文件/var/lib/dpkg/info/<NAME>.list
( 所用文件)中的文件列表进行比较dpkg -S
。该-v1
选项将报告第一个列表中存在但不在第二个列表中的文件。
在我的计算机上,这个差异列表给出了超过 5000 个结果,所以我怀疑它是否有任何帮助。
答案3
sudo aptitude install cruft
man cruft
sudo addgroup cruft
sudo chmod g+rwx /var/spool/cruft
sudo chown root:cruft /var/spool/cruft
sudo addgroup $USER cruft
cruft -r cruftreport
sudo chown root:root /var/spool/cruft
less cruftreport