aptitude 删除 pkg_name* 不像 apt-get 那样工作

aptitude 删除 pkg_name* 不像 apt-get 那样工作

我已经卸载(aptitude purge)该软件包,但我的系统上qt-sdk仍然有很多qt4*和软件包。libqt*

aptitude remove/purge beginning_of_pkg_name*有没有办法像我们一样删除所有这些软件包apt-get?也许用 bash${}语法?

我不明白为什么我们不能用 aptitude 来做到这一点,如果你必须手动删除所有这些软件包,那真的很糟糕,一一删除。

PS:不应该aptitude purge package_name删除它下载的所有依赖项吗?

答案1

*用。。。来代替~n。例如# aptitude purge qt4~n libqt4~n

答案2

安全删除不再依赖的包

apt-get autoremove

这将给出通过依赖项拉入但不再需要的包列表(所有依赖包已删除)。

包未显示在列表中的原因

  1. 它们仍然被其他包使用(依赖)
  2. 它们是手动安装的,而不是通过依赖项拉入的。

检查反向依赖

要检查其他人是否需要某个包,请使用apt-rdepends -r <pacakge>

# apt-rdepends -r libmagic1| head
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libmagic1
  Reverse Depends: aegis (4.24.3-3)
  Reverse Depends: aegis-web (4.24.3-3)
  Reverse Depends: dares (0.6.5-6)
  Reverse Depends: dares-qt (0.6.5-6)
  Reverse Depends: dff (1.2.0+dfsg.1-1)
  Reverse Depends: ebook-speaker (2.0-2)
  Reverse Depends: file (= 5.09-2)
  Reverse Depends: file-roller (3.4.1-0ubuntu1)
  Reverse Depends: fossology-agents (1.2.0-3.1ubuntu2)

这将显示依赖于 libmagic1 的软件包列表。使用的原因head是因为apt-rdepends -r会递归计算反向依赖。要查看是否libmagic1依赖于任何东西,我们只需要最上面的几行。

检查 apt-get 自动安装状态

检查软件包是否是通过 apt-get 或 aptitude 手动安装的

apt-mark showauto | grep libqt4-sql-mysql

或者

apt-mark showmanual | grep libqt4-sql-mysql

PS:如果没有,grep apt-mark将显示自动或手动安装的软件包的完整列表。

相关内容