我想删除该软件包,但我忘记了如何通过dpkg
或安装它apt-get
我尝试检查dpkg-query -list | grep myPackage
和apt list --installed | grep myPackage
,但两者上都显示了 myPackage。
所以我如何知道该包是由 dpkg 还是 apt 安装的?
为了执行正确的卸载命令,例如:apt-get remove
或dpkg -r
答案1
比较 的日志
/var/log/apt/term.log
(这是 生成的日志文件)apt
和/var/log/dpkg.log
的日志(这是 生成的日志文件)dpkg
。如果您注意到可以在 中找到/var/log/dpkg.log
但在 中找不到的软件包名称/var/log/apt/term.log
,则很可能您当时已经安装了该软件包dpkg
。请记住
apt
是 的前端dpkg
。因此,建议删除任何通过apt
而不是的软件包dpkg
,因为apt
将处理依赖关系以删除那些不会被任何其他软件包使用的软件包(或将它们标记为“不再使用”以便您稍后删除它们。这取决于apt
您实际使用的确切选项)。但是,如果您愿意,删除您的软件包对您没有坏处dpkg
。您很可能会留下许多您不再使用的软件包。
答案2
任何使用 APT 安装的软件包也会使用 进行安装dpkg
。APT 计算依赖关系并获取软件包,然后由 进行解压和安装dpkg
。
如果您可以使用 APT 找到您的软件包,那么您应该使用apt
命令来卸载它们,因为 APT 将计算软件包的依赖关系并:
- 删除依赖于选定要删除的软件包的软件包
- 将选定要删除的软件包的依赖软件包标记为不再需要,以便可以使用
sudo apt autoremove
答案3
如何卸载软件包并不重要。
dpkg
还需要在包中设置的依赖项。
当您运行时apt remove
它会开始dpkg
删除该包。
当您使用 安装包dpkg
并且它需要一些依赖项时,安装过程会因错误而停止。您可以通过sudo apt install -f
安装依赖项(如果可用)来修复它。在这种情况下apt autoremove
将以相同的方式工作。