如何彻底删除虚拟包?

Fli*_*int 8 server package-management apt

事实证明,删除虚拟包apt-get只删除包本身,留下由它安装的真实包

那么如何删除虚拟包以及它安装的所有真实包呢?

小智 8

使用apt-cache depends查找包的列表中进行虚拟包“含有”,然后删除,以除去虚拟包所有这些的。例如:

$ sudo apt-cache depends mono-complete
mono-complete
  Depends: mono-runtime
  Depends: mono-runtime-sgen
  Depends: libmono-2.0-1
  Depends: libmono-profiler
  Depends: mono-utils
  Depends: mono-jay
  Depends: mono-devel
  Depends: mono-mcs
  Depends: mono-csharp-shell
  Depends: mono-4.0-gac
  Depends: mono-4.0-service
  Depends: monodoc-base
  Depends: monodoc-manual
  Depends: libmono-cil-dev
  Depends: ca-certificates-mono
Run Code Online (Sandbox Code Playgroud)

现在您所要做的就是sudo apt-get remove列出之后列出的所有包Depends:,一旦完成,虚拟包mono-complete将自动删除。

sudo apt-cache depends首先运行命令查看所有依赖包,然后,如果包列表看起来可以删除,您可以使用它来删除它们:

$ sudo apt-get remove `apt-cache depends mono-complete | grep Depends | cut -d : -f 2`
Run Code Online (Sandbox Code Playgroud)

工作完成后,您可以使用以下命令检查虚拟包状态:

$ dpkg -l mono-complete
Run Code Online (Sandbox Code Playgroud)

它应该被标记为 (n)not installed。

  • 当我运行 `sudo apt-cache depends wine` 时,它打印的只是 `<wine>`。(我使用 KUbuntu 18.04。) (10认同)

Pea*_*chy 4

“虚拟”包是仅包含对其他包的引用的包,或仅包含自定义配置文件的包

因此,您无法删除虚拟包,您需要删除引用或创建“虚拟”包的真实包。

  • 是否可以找到创建虚拟包的真实包?如果是这样,怎么办? (9认同)

KK *_*tel 2

您无法单独删除虚拟包。当您完全删除真实包时,虚拟包将自动删除。删除配置文件并删除软件包,您必须使用apt-get purge命令。