我如何知道某个包是由 dpkg 还是 apt 安装的?

我如何知道某个包是由 dpkg 还是 apt 安装的?

我想删除该软件包,但我忘记了如何通过dpkg或安装它apt-get

我尝试检查dpkg-query -list | grep myPackageapt list --installed | grep myPackage,但两者上都显示了 myPackage。

所以我如何知道该包是由 dpkg 还是 apt 安装的?

为了执行正确的卸载命令,例如:apt-get removedpkg -r

答案1

  1. 比较 的日志/var/log/apt/term.log(这是 生成的日志文件)apt/var/log/dpkg.log的日志(这是 生成的日志文件)dpkg。如果您注意到可以在 中找到/var/log/dpkg.log但在 中找不到的软件包名称/var/log/apt/term.log,则很可能您当时已经安装了该软件包dpkg

  2. 请记住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将以相同的方式工作。

相关内容