Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I installed kubuntu-kde4-desktop package on my Ubuntu 9.04 install to give KDE a fair shake since I've always wanted to try it. I'm not done with it yet, but if I decide I want to go back to my tried and true favorite Gnome setup how do I go about removing the KDE stuff easily without having to track down all the components in Synaptic?

I understand that kubuntu-kde4-desktop is a meta-package that works as a pointer to all the packages needed for the full KDE desktop experience, and as such I think I've seen that you can't simply do this:

$ sudo apt-get remove kubuntu-kde4-desktop

How do I remove the stuff if I decide not to use it in a simple one command way?

UPDATE: I've added the opposite of this question here.

share|improve this question
up vote 10 down vote accepted

$ sudo apt-get remove kubuntu-kde4-desktop

$ sudo apt-get autoremove

will remove all the dependant packages it pulled in. Alteratively, if you use aptitude like so

$ sudo aptitude remove kubuntu-kde4-desktop

it'll remove all the dependant packages for you automatically. Personally I prefer the manual control of apt-get, and it'll tell you when there are packages that can be autoremoved next time you use it anyway.

share|improve this answer
Nice. Did not know about autoremove. – jweede Aug 7 '09 at 16:34
After using either of these, run this to remove configuration files and other bits and pieces that are left-over: aptitude purge ~c The ~c search in aptitude finds any packages that were removed but not purged. So you're purging anything in such a state. It's a good command to remember for clean-up. – Telemachus Aug 8 '09 at 12:27
sudo apt-get --purge remove kubuntu-kde4-desktop

Should perform a complete removal.

--purge adds the ability to take down config files for packages you'll never use again. But as pointed out by TRS-80, the autoremove command should be used afterward to trim off needless dependencies.

share|improve this answer
That won't work quite the way you describe. the kubuntu-kde4-desktop package has no config files of its own, since it's a metapackage. And autoremove in the second command won't purge config files for all the auto-removed packages. I personally find that the easiest way to deal with residual configs is by ignoring them unless they get in the way, and then using Synaptic to purge them all periodically. – Ryan Thompson Nov 3 '09 at 7:57

As others have pointed out, you can use apt-get with --purge remove and autoremove/autoclean options.

You can also use the deborphan command (a separate package) to identify orphaned packages, and delete the identified packages so:

sudo apt-get --purge remove `deborphan`

A more comprehensive program is debfoster ( weed unnecessary Debian packages ) which I run quite often to keep my system tidy. A rather old HOWTO on debfoster shows you how to rid yourself of all KDE packages with instructions that are relevant still.

A small snippet of debfoster in operation ( I recently used it to purge eclipse and related packages from my system ). Note you can pass it a package to focus on as a parameter.

I regularly try and discard software, and debfoster is incredibly helpful in making sure I keep bloat from unwanted packages to a minimum.

$ sudo debfoster

ubuntu-desktop is keeping the following 194 packages installed:
  acpi-support acpid apmd app-install-data-partner apport apport-gtk at-spi avahi-autoipd bluez-utils brltty brltty-x11
  checkbox checkbox-gtk compiz compiz-fusion-plugins-extra compiz-fusion-plugins-main contact-lookup-applet cupsddk
  cupsddk-drivers dc dcraw dmz-cursor-theme dnsmasq-base ekiga eog ethtool evolution-exchange evolution-indicator
  example-content fast-user-switch-applet fglrx-modaliases file-roller finger firefox-3.0-gnome-support
  firefox-gnome-support foo2zjs foomatic-db-hpijs gcalctool gdm gdm-guest-session gedit gedit-common
  gnome-accessibility-themes gnome-cards-data gnome-codec-install gnome-games gnome-games-data gnome-mag gnome-nettool
  gnome-orca gnome-power-manager gnome-screensaver gnome-session-canberra gnome-system-tools gnome-themes-selected
  gnome-themes-ubuntu gstreamer0.10-plugins-base-apps gstreamer0.10-schroedinger gstreamer0.10-tools gtk2-engines
  gtk2-engines-murrine gucharmap gvfs-fuse hal-cups-utils hotkey-setup hpijs hplip hplip-data human-icon-theme human-theme
  im-switch inputattach jockey-common jockey-gtk language-selector language-selector-common laptop-mode-tools lftp
  libavahi-ui0 libbrlapi0.5 libcolamd-3.2.0 libcryptui0 libdmx1 libggz2 libggzcore9 libggzmod4 libgmime2.2a-cil
  libgnome-mag2 libgnomepanel2.24-cil libgnomevfs2-bin libgtk-vnc-1.0-0 libieee1284-3 libmbca0 libnm-glib0 libnm-util1
  libopal3.6.1 libotr2 libpt2.6.1 libpt2.6.1-plugins-alsa libpt2.6.1-plugins-v4l2 libsane libscim8c2a libsnmp-base libsnmp15
  libusplash0 libwmf0.2-7-gtk libwpg-0.1-1 linux-headers-2.6.28-15 linux-headers-2.6.28-15-generic linux-headers-generic
  lp-solve min12xxw mobile-broadband-provider-info mscompress nautilus-sendto nautilus-share network-manager
  network-manager-gnome notify-osd nvidia-173-modaliases nvidia-180-modaliases nvidia-71-modaliases nvidia-96-modaliases
  nvidia-common onboard openprinting-ppds pcmciautils pidgin pidgin-libnotify pidgin-otr pnm2ppa pxljr python-brlapi
  python-cups python-cupshelpers python-gtksourceview2 python-pyatspi python-smbc python-usb python-virtkey readahead
  rss-glx sane-utils scim scim-bridge-agent scim-bridge-client-gtk scim-gtk2-immodule scim-modules-socket
  screensaver-default-images seahorse seahorse-plugins splix ssh-askpass-gnome syslinux system-config-printer-common
  system-config-printer-gnome tangerine-icon-theme tomboy toshset tsclient ttf-arabeyes ttf-arphic-uming ttf-lao
  ttf-sazanami-gothic ttf-thai-tlwg ubuntu-artwork ubuntu-docs ubuntu-gdm-themes ubuntu-sounds ubuntu-wallpapers
  update-manager update-notifier usb-creator usplash usplash-theme-ubuntu vinagre vino whois wireless-tools wpasupplicant
  xcursor-themes xdg-user-dirs-gtk xfonts-100dpi xfonts-75dpi xfonts-scalable xinput xorg xscreensaver-data xscreensaver-gl
Keep ubuntu-desktop? [Ynpsiuqx?], [H]elp: Y

eclipse-cdt is keeping the following 77 packages installed:
  ant ant-gcj ant-optional ant-optional-gcj antlr default-jdk default-jre ecj ecj-gcj eclipse eclipse-gcj eclipse-jdt
  eclipse-jdt-gcj eclipse-pde eclipse-pde-gcj eclipse-platform eclipse-platform-gcj eclipse-rcp eclipse-rcp-gcj
  eclipse-source fastjar gappletviewer-4.3 gcj-4.2-base gcj-4.3 gcj-4.3-base gij-4.2 gij-4.3 gjdoc java-gcj-compat
  java-gcj-compat-dev java-gcj-compat-headless junit junit4 libantlr-java libantlr-java-gcj libbcel-java
  libcommons-beanutils-java libcommons-collections-java libcommons-collections3-java libcommons-dbcp-java
  libcommons-digester-java libcommons-el-java libcommons-launcher-java libcommons-logging-java libcommons-modeler-java
  libcommons-pool-java libecj-java libecj-java-gcj libgcj-bc libgcj-common libgcj8-1 libgcj8-1-awt libgcj8-jar libgcj9-0
  libgcj9-0-awt libgcj9-dev libgcj9-jar libgcj9-src libjaxp1.3-java libjaxp1.3-java-gcj libjsch-java liblog4j1.2-java
  liblog4j1.2-java-gcj liblucene-java liblucene-java-doc libmx4j-java libregexp-java libservlet2.3-java libservlet2.4-java
  libswt3.2-gtk-gcj libswt3.2-gtk-java libswt3.2-gtk-jni libtomcat5.5-java libxerces2-java libxerces2-java-gcj libxt-dev
Keep eclipse-cdt? [Ynpsiuqx?], [H]elp: H

  Yes        Keep eclipse-cdt. [default]
  No         Delete eclipse-cdt.
  Prune      Delete eclipse-cdt and the packages it is keeping installed.
  Skip       Skip this question.
  Help       Print this message.
  Info or ?  Show information about eclipse-cdt.
  Undo       Undo last response.
  Quit       Exit without removing packages.
  Exit       Remove unwanted packages and exit.

Keep eclipse-cdt? [Ynpsiuqx?], [H]elp: P

libpanelappletmm-2.6-dev is keeping the following 9 packages installed:
  libcairomm-1.0-dev libgconfmm-2.6-dev libglibmm-2.4-dev libgnomemm-2.6-dev libgtkmm-2.4-dev libpanel-applet2-dev
  libpanelappletmm-2.6-1c2 libpangomm-1.4-dev libsigc++-2.0-dev
Keep libpanelappletmm-2.6-dev? [Ynpsiuqx?], [H]elp: S

Edit: A good link to learn about deborphan usage. A concise explanation of debfoster.

share|improve this answer
deborphan among other things returns diff and other essential packages though - so I wouldn't really recommend using it. – Grzenio Nov 13 '09 at 8:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .