如何判断dpkg或apt是否安装了软件包?


15

我想删除该软件包,但忘记了如何通过dpkgapt-get

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

那么如何知道该软件包是由dpkg还是apt安装的呢?

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


7
您可以使用任何一种方式进行卸载。
飞行员

Answers:


28
  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如果需要的话,删除软件包对您没有害处。您可能会留下许多不再使用的软件包。


感谢您的评论@ user535733。我根据您的评论编辑了答案。
tai271828 '17

21

与APT一起安装的所有软件包也都与一起安装dpkg。APT计算依赖关系并获取软件包,然后将其解压缩并安装dpkg

如果可以使用APT查找软件包,则应使用apt命令将其卸载,因为APT会计算软件包的依赖性,并且:

  • 删除依赖于要删除的软件包的软件包
  • 标记不再依赖于选定要删除的软件包的软件包,以便可以使用 sudo apt autoremove

4

卸载软件包无关紧要。

dpkg 还需要在程序包中设置的依赖项。

运行时,apt remove它将开始dpkg删除软件包。

当您使用安装软件包时dpkg,如果需要安装软件包,安装过程将因错误而停止。您可以通过修复它来sudo apt install -f安装依赖项(如果可用)。在这种情况下,apt autoremove将以相同的方式工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.