aptitude (software)
Developer(s) | Daniel Burrows |
---|---|
Stable release | 0.5.1
/ January 18, 2009 |
Preview release | 0.4.11.11
/ November 19, 2008 |
Repository | |
Written in | C++ |
Operating system | Linux |
Platform | Debian and its derivatives |
Type | Package management system |
License | GNU General Public License |
Website | packages.debian.org/aptitude |
aptitude is a front-end to the Advanced Packaging Tool (APT). It displays a list of software packages and allows the user to interactively pick packages to install or remove. It has an especially powerful search system utilizing flexible search patterns. It was initially created for Debian, but has appeared in RPM-based distributions as well (such as Conectiva).
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 a single executable, it provides CLI functionality similar to that of apt- family of tools (apt-get, apt-cache, apt-listchanges, etc). Aptitude also emulates most apt-get command line options, allowing it to act as a drop-in replacement for some of the apt-get usages. Newer versions also come with a GTK+ interface.
History
aptitude was created in 1999. At the time two other terminal-based APT front-ends were available: the dselect program, which had been used to manage packages on Debian since 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 more of an object-oriented 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 capability had been added, along with many other improvements; this version was included in Debian 2.2 (code name: "potato").
In late 2000 the entire 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.
As of the Debian 4.0 ("Etch") release of 2007, aptitude is "the preferred program for package management from console both for package installations and package or system upgrades."[1]
Usage
aptitude does not require root privileges to run, and shows prompts to "Become Root" only when such rights are required.
Once opened, aptitude proposes a threaded list of packages that can be navigated with arrow keys and enter to open and collapse nodes. Pressing Ctrl-T gives access to the menus that list all the features and the shortcuts of the program. The most important are:
- u to update package listings (requires root)
- shift-u to mark all upgradeable packages for upgrade
- + to mark the selected package for installation
- - to mark the selected package for removal
- / to search the listings (use n and shift-n to cycle between the results)
- g to preview changes
- g again to apply changes (requires root)
- q to quit
Easter egg
aptitude states that, unlike Advanced Packaging Tool, 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 telling them to go away, some ending with a picture not unlike the original apt-get easter egg. Different versions of the program have different sequences.
GSoC
For the Google Summer of Code (2008), Obey Arthur Liu adopted the idea to develop a GTK+ GUI for aptitude (as well as some usability improvements for the ncurses interface). The project has now been finished and merged into the main codebase [1].