我想卸载packageA
packageA 依赖的所有其他包,但不卸载仍然具有依赖项的包。
$ apt-cache depends packageA
packageA
Depends: packageB
Depends: packageC
$ apt-cache depends packageD
Depends: packageC
$ apt-cache rdepends packageB
Reverse Depends:
packageA
$ apt-cache rdepends packageC
Reverse Depends:
packageA
packageD
packageA
、packageB
、packageC
和packageD
当前已安装。我要卸载packageA
。因为packageB
这是唯一依赖的软件包,packageA
我也想卸载它。由于需要,packageC
仍应安装。packageD
我不想卸载packageD
。
我知道有apt autoremove
。但是我不想使用,apt autoremove
因为有一些“未使用”的软件包实际上已被使用。然而,由于数量巨大,我无法分辨哪些是未使用的软件包,并且我不想安装所有未使用的软件包。
依赖关系正在修复,但需要时间。现在我需要一个解决方案。
答案1
Aptitude 应该为您做到这一点。如果packageB
标记为自动安装,
aptitude remove packageA
将删除packageA
和packageB
。由于packageC
另一个包仍然需要它,因此不会将其删除。
答案2
我找不到像自动删除这样的其他程序。我使用过自动删除,它从未破坏过我的系统。也许这是值得考虑的事情?创建所有已安装软件包的备份列表
sudo cp -a /etc/apt/sources.list{,.bak} && sudo apt install apt-clone -y && mkdir ~/mypackages && sudo apt-clone clone ~/mypackages
现在你可以运行sudo apt 自动删除如果您遇到任何问题,只需恢复即可
sudo apt-clone restore apt-clone-state-ubuntuserver.tar.gz