我已经卸载(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
这将给出通过依赖项拉入但不再需要的包列表(所有依赖包已删除)。
包未显示在列表中的原因
- 它们仍然被其他包使用(依赖)
- 它们是手动安装的,而不是通过依赖项拉入的。
检查反向依赖
要检查其他人是否需要某个包,请使用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
将显示自动或手动安装的软件包的完整列表。