# Aptitude (software)

aptitude is a front end to APT, the Debian package manager. It displays a list of software packages and allows the user to interactively pick packages to install or remove. It has a search system utilizing flexible search patterns. It was initially created for Debian, but has appeared in RPM-based distributions as well.

## User interfaces

aptitude is based on the ncurses computer terminal library, with which it provides an interface that incorporates some elements commonly seen in graphical user interfaces (GUIs) (such as pull-down menus).
In addition to the ncurses interface, aptitude provides an extensive command-line interface (CLI). Even though aptitude is one executable file, it provides command-line functions similar to those of the family of tools provided by APT (apt-get, apt-cache, apt-listchanges, etc.). aptitude also emulates most apt-get command-line arguments, allowing it to act as a full replacement for apt-get. In the past, it was recommended that aptitude and apt-get not be used interchangeably. This is no longer true, as both programs now correctly track and share a common list of packages that were automatically installed to satisfy dependencies.

## History

aptitude was created in 1999. At the time two other terminal-based APT-like front ends were available: the dselect program, which had been used to manage packages on Debian before APT was created, and the console-apt program, a project that was considered to be the heir apparent to dselect. aptitude was created to experiment with a more object-oriented programming design than that used in console-apt, in the hope that this would result in a more flexible program with a broader set of features.
The first public release of aptitude was version 0.0.1 on November 18, 1999. It was very limited: it had the ability to view the list of available packages, but could not actually download or install any packages. By version 0.0.4a, this ability had been added, with many other improvements; this version was included in Debian 2.2, code name: potato.
In late 2000, the whole user interface module was rewritten; a new architecture was created, based on the libsigc++ callback library and concepts from modern widget toolkits such as GTK+ and Qt. This enabled the interface to become much more similar to GUIs than it had been previously, with features such as pull-down menus and pop-up dialogs. One of aptitude's more unusual features, a tiny implementation of Minesweeper, was added at this time. The first official aptitude release following this rewrite was 0.2.0., aptitude 0.2.11.1 was released with Debian 3.0 Woody. By this time, the console-apt project (renamed to deity) had been effectively abandoned by its maintainers, and it was removed from Woody. aptitude has also been ported to jailbroken iOS as part of the Cydia package manager.

## Easter egg

aptitude states that, unlike APT, it does not have "Super Cow Powers". In apt-get, "super cow powers" can be found by issuing the command apt-get moo. However, in aptitude issuing moo will give the user a prompt saying there are no Easter eggs.
However, by issuing aptitude -v moo, then aptitude -vv moo, and so on the user will see a series of statements denying the "Super Cow Powers" or telling them to go away, some ending with a picture (a reference to Antoine de Saint-Exupéry's The Little Prince) not unlike the original apt-get Easter egg. Different versions of the program have different sequences.
In addition, the package description states that "aptitude is also Y2K-compliant, non-fattening, naturally cleansing, and housebroken."