How to completely remove virtual packages?

It turns out that removing a virtual package with apt-get only remove the package itself, leaving behind the real packages that were installed by it

So how do you remove a virtual package, along with all the real packages that it installs?


Use apt-cache depends to find a list of packages that the virtual package "contains" and then remove all of those in order to remove the virtual package. For example:

$ 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

Now all you have to do is sudo apt-get remove all of the packages listed after Depends: and once done, the virtual package mono-complete will be removed automagically.

Run sudo apt-cache depends command first to take a look at all the dependent packages, and then, if the list of packages looks to you that it is ok to be removed, you can use this to remove them all:

$ sudo apt-get remove `apt-cache depends mono-complete | grep Depends | cut -d : -f 2`

Once the job is done, you can check virtual package status with:

$ dpkg -l mono-complete

It should be marked as (n)ot installed.


'Virtual' packages are packages that only contain references to other packages, or packages that only contain customized configuration files.

Therefore you cannot remove virtual packages, you need to remove the real packages from which the 'virtual' ones was referenced or created from.


You cannot remove virtual packages individually . When you remove the real packages completely, virtual packages are automatically removed. Remove configuration file with removing packages you have to use apt-get purge command.


These answers didn't solve the question. The question is "can I remove them" The answers were yes, but didn't give the commands to remove them. They only refer to computers terminals problems having installed them it cannot remove them? Then this is a bug or this question is unanswered.

I have the same problem-

I followed the prompts to apt-get purge then purge -f and got the following:

The following packages have unmet dependencies:

      google-chrome-stable:i386 : Depends: libasound2:i386 (>= 1.0.23) but it is not installed

                         Depends: libatk1.0-0:i386 (>= 1.12.4) but it is not installed

                         Depends: libcairo2:i386 (>= 1.6.0) but it is not installed

                         Depends: libcups2:i386 (>= 1.4.0) but it is not installed

                         Depends: libfontconfig1:i386 (>= 2.8.0) but it is not installed

                         Depends: libgconf-2-4:i386 (>= 2.31.1) but it is not installed

                         Depends: libgcrypt11:i386 (>= 1.4.5) but it is not installed

                         Depends: libgdk-pixbuf2.0-0:i386 (>= 2.22.0) but it is not installed

                         Depends: libglib2.0-0:i386 (>= 2.18.0) but it is not installed

                         Depends: libgtk2.0-0:i386 (>= 2.24.0) but it is not installed

                         Depends: libnspr4:i386 (>= 1.8.0.10) but it is not installed

                         Depends: libnss3:i386 (>= 3.14.3) but it is not installed

                         Depends: libpango1.0-0:i386 (>= 1.22.0) but it is not installed

                         Depends: libudev0:i386 (>= 147) but it is not installed or

                                  libudev1:i386 (>= 198) but it is not installable

                         Depends: libxcomposite1:i386 (>= 1:0.3-1) but it is not installed

                         Depends: libxi6:i386 (>= 2:1.2.99.4) but it is not installed
                         Depends: libxss1:i386 but it is not installed
                         Depends: libxtst6:i386 but it is not installed
                         Depends: libcurl3:i386 but it is not installed
                         Depends: xdg-utils:i386 (>= 1.0.2) but it is not installable

E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by    held packages.        

E: Unable to correct dependencies

Is there an answer to removing the virtual packages so that another chrome package can be installed?

This isn't the original question; but, since he had tried and failed to resolve his problem of how to completely remove virtual packages, this is about the same.

I had already installed Aptitude and Aptitude's suggestion was removal of Chromium. Chromium is a Virtual package; and Aptitude removed Chromium and it's virtual remainder so I could reinstall.

So I would suggest installing Aptitude, and using Package Resolver by typing sudo aptitude into terminal, choosing Package Resolver>Remove>"package name".