How can I uninstall software?
If the application has been installed via the package manager, all you have to do is run
sudo apt-get remove <application_name>
That should always work. If the terminal isn't what stirs your tea, you could open System → Administration → Synaptic Package Manager, search for the package you want to remove, click on the checkbox next to it and select "mark for removal". Once you click "Apply", the package should be removed. There's of course also the Ubuntu Software Center. It's pretty much the same thing as Synaptic. Just search for the application name and click the "Remove" button.
Sometimes applications can be split up into multiple packages (for example, many games have a separate package for their music). To make sure that you uninstall all related packages AND configuration files, you can type
sudo apt-get purge <package-name>
or -in Synaptic- "mark for complete removal" instead of just "mark for removal".
As for applications that have been manually compiled and installed, there's not always a single way to remove them. The best thing to do is consult the README/INSTALL file that accompanied the source package - if one exists.
The software centre: find the package, click remove
Synaptic : the same
apt-get:
sudo apt-get remove <package> && sudo apt-get autoremove
aptitude:
sudo aptitude remove <package>
It's important to note that when you install things, they often depend on other packages. When you fire off apt-get remove <package>
it doesn't remove the automatically-installed applications by default. This is often safer (if you're temporarily removing something like ubuntu-desktop) but this can mean you end up with a load of cruft.
aptitude will automatically remove things (as well as having a nice interactive command line interface)
You can also search for cruft in synaptic using the "local or obsolete" filter under the status section.
Here's a rundown of the possible ways:
If the package has been installed via a package manager, you can remove it with one of the tools provided with this purpose:
dpkg --remove
: the most basic command-line tool. Avoid.apt-get remove
oraptitude remove
: these are the standard command-line tools. Aptitude is slightly preferred: it's a bit more sophisticated. E.g., it can keep a log file of all package operations.synaptic
: GUI tool accessible through the GUI menu under "System/Administration". Supports all features, a very nice program generally.software center
: even nicer GUI thansynaptic
. This is a better, updated version of the old "Add/Remove Programs"
All these get the job done. You can start with the most user-friendly (Software Center) and continue to aptitude, if you need certain features or install or remove programs very frequently.
Note that these operations remove the bulk of the program while sometimes leaving "configuration files" in locations such aus /etc/apache2. Most software doesn't have configuration files there; some server software ("daemons") do. In all but a few cases, keeping these configuration files will do no harm. If you want to remove everything, including configuration files, then you can use the "purge" operation. For aptitude, the command line is "aptitude purge." (Tommy's explication above of "purge" is not accurate. The "remove" operation, just like "purge", deletes all dependencies that were pulled in with the original program.)
If the program tells you the package has been removed, you can be sure that the files are gone. Sometimes packages installed as a matter of dependency are not removed immediately. They will be eventually deleted, at a subsequent run.
As to software installed from other channels (typically compiled from source), you're mostly forced to remove the files installed manually. They are often located somewhere in /usr/local
. Some software provides shortcuts such as "make uninstall". Don't count on it, though. More often than not, the cleanest solution is to use the version provided through Ubuntu's repositories, which can be uninstalled cleanly.