Aptitude is an Ncurses based FrontEnd to Apt, the debian package manager. Since it is text based, it is run from a terminal or a CLI (command line interface). Aptitude has a number of useful features, including:

a mutt-like syntax for matching packages in a flexible manner

mark packages as "automatically installed" or "manually installed" so that packages can be auto-removed when no longer required

colorful preview of actions about to be taken

dselect-like persistence of user actions

the ability to retrieve and display the Debian changelog of most packages

'q' to quit – this also closes the currently open window (‘g’ goes forward, ‘q’ goes back)

The common use of aptitude in TUI (text user interface) is; run aptitude; press 'u' (update the lists of available packages); press 'U' (Mark all upgradable packages to be upgraded); (search/select some stuff to install, is optional); press 'g' (to see the pending actions and modify if needed); press 'g' (again, to start the download).

Some time when you need to resolve conflicts, you discover that you made a mistake; you can easily use 'Cancel pending actions' in the 'Actions' menu so that you can re-select.

You can also use aptitude like in the same manner as apt-get:

Update the packages list:

aptitude update

Upgrade the packages:

aptitude upgrade

Install foo:

aptitude install foo

Remove bar:

aptitude remove bar

Purge foo:

aptitude purge foo

Personally, I still use apt-cache search foo to perform a search – the aptitude search foo is slower. But you should try the aptitude search foo way. You should discover that the output is a bit different from apt-cache, in some case, it may be useful to search for a package to see if it already installed.

The manual of aptitude is really a gold mine. I don't want to duplicate this useful informations so please take a look there for further help.

Package

How to upgrade your distribution

Reading and following the instructions found in the release notes when upgrading to a new major release is strongly recommended. Once upon a time using 'dist-upgrade' as described below was feasible. It is no longer the recommended practice (unless you are running sid, in which case you should not need to be reading this.) Likewise dist-upgrade is not necessary for minor release upgrades (e.g. from lenny 5.0.1 to 5.0.2).