如何卸载“aptitude build-dep”安装的所有软件包

是否可以撤消“aptitude build-dep xxxxxx”所做的所有更改,即卸载此命令安装的所有依赖项?

我不认为有一种自动方式。 通过build-dep安装的软件包的记录方式与通过名称直接请求的方式相同。

如果您大致了解运行aptitude build-dep ,则可以通过查看/var/log/aptitude*/var/log/apt/*的日志来查找运行命令时安装的软件包。

你可以运行apt-cache showsrc PACKAGENAME | grep '^Build-depends:' apt-cache showsrc PACKAGENAME | grep '^Build-depends:'列出包的构建依赖关系。 检查每一个,看看你是否想要它们; 标记你不关心的那些没有手动安装( apt-get markauto PACKAGENAME )并刷新非必需的包( apt-get autoremove )。

对于未来,我强烈建议使用mk-build-deps -i而不是aptitude build-dep 。 这会在系统中安装一个软件包,具体取决于build-deps,您可以在以后轻松卸载。

我在Launchpad 问题上找到了这些命令:

 sudo aptitude markauto $(apt-cache showsrc PACKAGE_NAME | grep Build-Depends | perl -p -e 's/(?:[\[(].+?[\])]|Build-Depends:|,|\|)//g') 

还有一个基于sed的替代方案,可以处理包名称中的括号:

 sudo aptitude markauto $(apt-cache showsrc PACKAGE_NAME | sed -e '/Build-Depends/!d;s/Build-Depends: \|,\|([^)]*),*\|\[[^]]*\]//g') 

注意:将PACKAGE_NAME替换为您自己的套餐。