检查已安装的包是否依赖于其他已安装的包

检查已安装的包是否依赖于其他已安装的包

根据标题来说。

类似这样的解决方案: apt-cache rdepends packagename

列出所有反向包。尽管列表中的大多数包我都没有安装在我的系统中。例如:

apt-cache rdepends python-gpgme
python-gpgme

Reverse Depends:
  python-bzrlib
  bzr
  python-gpgme:i386
  nautilus-dropbox
  assword
  alot
  python-gpgme-dbg
  python-bzrlib
  bzr

我没有安装 bzr、nautilus、alot 和其他软件。

那么,找出该“目标”包的已安装依赖包列表的正确命令是什么?

我需要知道是否可以清除 python-gpgme。

答案1

如果有疑问,只需使用-s(又名--simulate--just-print--dry-run和)标志。您可以在没有 root 权限的情况--recon--no-act运行该命令,它会根据您当前的软件包告诉您它将执行的操作。

$ apt-get remove -s python-gpgme
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED
  python-gpgme
0 to upgrade, 0 to newly install, 1 to remove and 217 not to upgrade.
Remv python-gpgme [0.3-0ubuntu3]

答案2

资质搜索模式(详细语法和等效简写语法):

aptitude search '?depends(python-gpgme) ?installed'
aptitude search '~Dpython-gpgme ~i'

包括建议以及严格依赖关系:

aptitude search '(?depends(python-gpgme) | ?recommends(python-gpgme)) ?installed'
aptitude search '(~Dpython-gpgmg | ~Drecommends:python-gpgme) ~i'

答案3

或者,使用 aptitude 作为 Gilles 的答案,只需使用why会向您显示“为什么安装软件包”的命令:

aptitude why python-gpgme

例如:

➜  ~  aptitude why python-gpgme
i   bzr Recommends python-gpgme

这告诉我,如果有理由安装 python-gpgme,那将是由于bzr安装了它的包。

答案4

您还可以执行以下操作:

sudo dpkg -s <package_name> | grep Depends

例如:

sudo dpkg -s bcmwl-kernel-source | grep Depends 
Depends: dkms, linux-libc-dev, libc6-dev

相关内容