Ubuntu 11.10 – How to Completely Remove a Package

This tutorial shows how to completely remove or uninstall a package in Ubuntu 11.10. These instructions should work for other versions of Ubuntu, it’s derivatives (Edubuntu, Kubuntu, Lubuntu, Xubuntu) and other Debian based Linux distributions – but no guarantee is made.

This tutorial assumes you are comfortable with lower level operations in Ubuntu and know how to use apt-get. A brief introduction to apt-get can be found here.

NOTE: this introduction only covers the install aspect of apt-get. In this tutorial, we will see other apt-get commands: remove, autoremove, and --auto-remove

WARNING ! ! !

There is a small but real risk of data loss or making other programs or Ubuntu unusable.

Ensure you have a backup before proceeding

The Problem

A package is installed using either Ubuntu Software Center or apt-get. Later it is uninstalled, but you discover that not everything has been removed. Usually, this happens when you install and then uninstall one of the alternate Ubuntu desktops (Edubuntu, Kubuntu, Lubuntu, or Xubuntu) – the result is a mess.

This happens because a number of Recommended and Extra packages are installed along with the requested package. Unfortunately, many times, these Recommended and Extrapackages are not removed during uninstallation.

Example 1 – an easy to clean up install

Installing the package stellarium causes an extra package called stellarium-data to be installed as well:

richard@richard-VirtualBox:~$ sudo apt-get install stellarium
[sudo] password for richard:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  stellarium-data
The following NEW packages will be installed:
  stellarium stellarium-data
0 upgraded, 2 newly installed, 0 to remove and 100 not upgraded.
Need to get 35.6 MB of archives.
After this operation, 48.2 MB of additional disk space will be used.
Do you want to continue [Y/n]? 

Uninstalling the package stellarium does not uninstall the extra package.

When using apt-get to remove stellarium (yellow) we are informed that an extra package had been installed (red) and should be removed using apt-get autoremove. The only package being removed by apt-get is the stellarium package (blue):

richard@richard-VirtualBox:~$ sudo apt-get remove stellarium
[sudo] password for richard:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer
required:
  stellarium-data
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  stellarium
0 upgraded, 0 newly installed, 1 to remove and 100 not upgraded.
After this operation, 7,090 kB disk space will be freed.
Do you want to continue [Y/n]? 

Running the command apt-get autoremove removes certain types of packages. It removes packages that depend on other packages, but those packages no longer exist:

richard@richard-VirtualBox:~$ sudo apt-get autoremove
[sudo] password for richard:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  stellarium-data
0 upgraded, 0 newly installed, 1 to remove and 123 not upgraded.
After this operation, 41.1 MB disk space will be freed.
Do you want to continue [Y/n]? 

Those two steps of running the apt-get with the commands remove and autoremove can be combined into a single step. In this case, you specify the remove command and the --auto-remove flag / switch (yes, I know, it is spelled differently from the command, I have no idea why). This is how the Ubuntu Software Center runs the command when you use it to remove Remove a package:

richard@richard-VirtualBox:~$ sudo apt-get remove --auto-remove stellarium
[sudo] password for richard:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  stellarium stellarium-data
0 upgraded, 0 newly installed, 2 to remove and 100 not upgraded.
After this operation, 48.2 MB disk space will be freed.
Do you want to continue [Y/n]? 

Example 2 – a hard to clean up install

Not all recommended and extra packages that apt-get installs are easy to uninstall.

If you install one of the Ubuntu based desktops, like edubuntu-desktop, kubuntu-desktop, lubuntu-desktop, or xubuntu-desktop, you will find they install many recommended and extra packages. These extra packages might add to the experience of the installed package, but they don’t get removed when you uninstall the package. For example, installing lubuntu-desktop will also install the Abiword word processor, a number of games, the Chromium web browser along with many other packages.

Notice all the extra packages (blue) being installed along with lubuntu-desktop (yellow):

richard@richard-VirtualBox:~$ sudo apt-get install lubuntu-desktop
[sudo] password for richard:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  abiword abiword-common abiword-plugin-grammar
  abiword-plugin-mathview ace-of-penguins audacious
  audacious-plugins chromium-browser chromium-browser-l10n
  chromium-codecs-ffmpeg elementary-icon-theme
  esound-common galculator gdebi gdebi-core giblib1
  gnome-icon-theme-full gnome-mplayer gnome-time-admin
  gnumeric gnumeric-common gnumeric-doc gpicview guvcview
  hardinfo indicator-status-provider-pidgin leafpad libabiword-2.8
  libaiksaurus-1.2-0c2a libaiksaurus-1.2-data
  libaiksaurusgtk-1.2-0c2a libaudclient2 libaudcore1 libaudiofile0
  libbinio1ldbl libcddb2 libcompfaceg1 libcue1 libdiscid0 libesd0
  libexo-1-0 libexo-common libfluidsynth1 libfm-data libfm-gtk-data
  libfm-gtk1 libfm1 libgdome2-0 libgdome2-cpp-smart0c2a
  libgoffice-0.8-8 libgoffice-0.8-8-common libgringotts2
  libgsf-1-114 libgsf-1-common libgtkmathview0c2a libimlib2
  libjpeg-progs liblink-grammar4 libloudmouth1-0 libmcrypt4 libmcs1
  libmenu-cache1 libmowgli2 libmusicbrainz3-6 libobrender27 libobt0
  libonig2 libopenal1 libopts25 libots0 libpisock9
  libresid-builder0c2a libsidplay2 libsvga1 libtar0 libuniconf4.6
  libvdpau1 libwebcam0 libwv-1.2-3 libwvstreams4.6-base
  libwvstreams4.6-extras libxfce4ui-1-0 libxfce4util-bin
  libxfce4util-common libxfce4util4 libxfcegui4-4 libxfconf-0-2
  libxvidcore4 link-grammar-dictionaries-en lm-sensors
  lubuntu-artwork lubuntu-core lubuntu-default-settings
  lubuntu-icon-theme lxappearance lxappearance-obconf lxde-common
  lxde-core lxdm lxinput lxkeymap lxlauncher lxmenu-data lxpanel
  lxpanel-indicator-applet-plugin lxrandr lxsession lxsession-edit
  lxshortcut lxtask lxterminal mplayer mtpaint ntp obconf openbox
  openbox-themes osmo pcmanfm pidgin pidgin-data pidgin-libnotify
  pidgin-microblog plymouth-theme-lubuntu-logo
  plymouth-theme-lubuntu-text python-xklavier scrot sylpheed
  sylpheed-doc sylpheed-i18n sylpheed-plugins transmission ttf-lyx
  uvcdynctrl uvcdynctrl-data wvdial xfburn xfce-keyboard-shortcuts
  xfce4-power-manager xfce4-power-manager-data xfconf xfonts-100dpi
  xpad xscreensaver
Suggested packages:
  gecko-mediaplayer gnumeric-plugins-extra epiphany-browser
  docbook-xsl mesa-utils evince-gtk libmcrypt-dev mcrypt
  libmcs-backend-gconf libmcs-utils jpilot pilot-link kpilot
  gnome-pilot claws-mail nvidia-vdpau-driver vdpau-driver fancontrol
  sensord read-edid i2c-tools indicator-application-gtk2
  indicator-messages-gtk2 indicator-sound-gtk2 mplayer-doc netselect
  fping ntp-doc menu ttf-dejavu libxml2-dev gnome-panel
  kdebase-workspace-bin docker claws-mail-tools bsfilter
  xfce4-power-manager-plugins xfs xserver xfishtank xdaliclock
  fortune qcam streamer gdm3 kdm-gdmcompat
Recommended packages:
  amixer locales-all
The following NEW packages will be installed:
  abiword abiword-common abiword-plugin-grammar
  abiword-plugin-mathview ace-of-penguins audacious
  audacious-plugins chromium-browser chromium-browser-l10n
  chromium-codecs-ffmpeg elementary-icon-theme esound-common
  galculator gdebi gdebi-core giblib1 gnome-icon-theme-full
  gnome-mplayer gnome-time-admin gnumeric gnumeric-common
  gnumeric-doc gpicview guvcview hardinfo
  indicator-status-provider-pidgin leafpad libabiword-2.8
  libaiksaurus-1.2-0c2a libaiksaurus-1.2-data
  libaiksaurusgtk-1.2-0c2a libaudclient2 libaudcore1 libaudiofile0
  libbinio1ldbl libcddb2 libcompfaceg1 libcue1 libdiscid0 libesd0
  libexo-1-0 libexo-common libfluidsynth1 libfm-data libfm-gtk-data
  libfm-gtk1 libfm1 libgdome2-0 libgdome2-cpp-smart0c2a
  libgoffice-0.8-8 libgoffice-0.8-8-common libgringotts2
  libgsf-1-114 libgsf-1-common libgtkmathview0c2a libimlib2
  libjpeg-progs liblink-grammar4 libloudmouth1-0 libmcrypt4 libmcs1
  libmenu-cache1 libmowgli2 libmusicbrainz3-6 libobrender27 libobt0
  libonig2 libopenal1 libopts25 libots0 libpisock9
  libresid-builder0c2a libsidplay2 libsvga1 libtar0 libuniconf4.6
  libvdpau1 libwebcam0 libwv-1.2-3 libwvstreams4.6-base
  libwvstreams4.6-extras libxfce4ui-1-0 libxfce4util-bin
  libxfce4util-common libxfce4util4 libxfcegui4-4 libxfconf-0-2
  libxvidcore4 link-grammar-dictionaries-en lm-sensors
  lubuntu-artwork lubuntu-core lubuntu-default-settings
  lubuntu-desktop lubuntu-icon-theme lxappearance
  lxappearance-obconf lxde-common lxde-core lxdm lxinput
  lxkeymap lxlauncher lxmenu-data lxpanel
  lxpanel-indicator-applet-plugin lxrandr lxsession lxsession-edit
  lxshortcut lxtask lxterminal mplayer mtpaint ntp obconf openbox
  openbox-themes osmo pcmanfm pidgin pidgin-data pidgin-libnotify
  pidgin-microblog plymouth-theme-lubuntu-logo
  plymouth-theme-lubuntu-text python-xklavier scrot sylpheed
  sylpheed-doc sylpheed-i18n sylpheed-plugins transmission ttf-lyx
  uvcdynctrl uvcdynctrl-data wvdial xfburn xfce-keyboard-shortcuts
  xfce4-power-manager xfce4-power-manager-data xfconf xfonts-100dpi
  xpad xscreensaver
0 upgraded, 145 newly installed, 0 to remove and 19 not upgraded.
Need to get 86.9 MB of archives.
After this operation, 315 MB of additional disk space will be used.
Do you want to continue [Y/n]? 

Uninstalling lubuntu-desktop using sudo apt-get remove lubuntu-desktop only removes the lubuntu-desktop package (yellow) but none of the other packages that were installed installed with it:

richard@richard-VirtualBox:~$ sudo apt-get remove --auto-remove lubuntu-desktop
[sudo] password for richard:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  lubuntu-desktop
0 upgraded, 0 newly installed, 1 to remove and 123 not upgraded.
After this operation, 32.8 kB disk space will be freed.
Do you want to continue [Y/n]? 

This is because none of those packages depend on lubuntu-desktop to function. They are recommended and installed because they contribute to the overall “Lubuntu experience”. They all have to be removed separately.

Next page -> “The Solution”

(page navigation is just under the Related posts at the bottom of the page).

6 Comments

  • Mark D. says:

    I used apt-get autoremove to uninstall VirtualBox and it says it can’t locate file. I see it in my directories. But it doesn’t show up in my software center where I installed yesterday. Am I missing something. I don’t want to just remove the dir.

    • admin says:

      I haven’t run VirtualBox inside of Ubuntu (I use it to run Ubuntu inside of Windows), but … the command to remove it should be sudo apt-get remove –auto-remove virtualbox-qt.
      Entering sudo apt-get autoremove instructs the installer system to automatically remove unused packages from the computer.
      Hope this helps and thanks for your question.

  • Sul says:

    aptitude works great for removing those extra dependencies. Also, deborphan can help to find such packages.
    sudo aptitude purge package

    • admin says:

      You can definitely do sudo apt-get autoremove to clean up unused dependencies (which I mention in the article) – and this works fine, but it does not uninstall everything, neither does <>deborphan.
      For example, if you install the Xubuntu desktop, in addition to installing the desktop, it also installs Abiword (among other things). Even if you use the autoremove option of apt-get or you run deborphan, Abiword and all the the applications installed along with Xubuntu desktop do not get uninstalled. Since none of those applications are orphaned (because you can always install them yourself without installing the Xubuntu desktop), the only way to clean them up is to remove them one by one.
      The proper way for the uninstaller to work is to read the installation log to determine what needs to be uninstalled.
      My solution (page 3 of this article) shows the user how to do this manually.
      An even better uninstaller would tell you which applications (if extra applications had been installed) were being removed and give you the choice of keeping the applications you want. On the other hand, a good installer would tell you which extra applications are being installed (apt-get at the commandline does this, but the info is not displayed in the Ubuntu Software Center) and give you the choice of installing them or not.
      Thanks for your comment.

  • Marius says:

    Please, without command line nonsence… Is there any way to uninstall program with GUI?

    • admin says:

      There is no available GUI interface that allows you to completely remove a package and all the other packages installed with it in one step.
      However, you can use Ubuntu Software Center to completely remove all packages – you just have to do it one package at a time.
      (1) determine which packages were installed – this means looking at the history.log to find out which packages were installed.
      (2) enter the package names (one at a time) into the Ubuntu Software Center and click on Remove
      There is an updated (for Ubuntu 12.04)) version of this article here. It is shorter and better expains the problem and solution.
      So far, I have not found any software package (with or without at GUI) that completely uninstall what was installed – they all use sudo apt-get remove --auto-remove <package name> (or its equivalent). As my article explains, in many cases, this leaves behind unneeded and unused packages.
      There are a number of packages that claim to clean up your system, but what they do is run sudo apt-get autoremove which removes some left behind packages. Others also run sudo apt-get purge which cleans out the repository cache (these are the files that are downloaded when you install something), but it does not remove the installed packages.
      This is a serious problem and people should complain about it to Linux developers.