Aptitude (program)
Encyclopedia
aptitude is a front-end to the Advanced Packaging Tool
Advanced Packaging Tool
The Advanced Packaging Tool, or APT, is a free user interface that works with core libraries to handle the installation and removal of software on the Debian GNU/Linux distribution and its variants...

 (APT). It displays a list of software packages
Software package (installation)
In package management systems, which are commonly used with Linux-based operating systems, a package is a specific piece of software which the system can install and uninstall....

 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
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

, but has appeared in RPM
RPM Package Manager
RPM Package Manager is a package management system. The name RPM variously refers to the .rpm file format, files in this format, software packaged in such files, and the package manager itself...

-based distributions as well (such as Conectiva
Conectiva
Conectiva was a company founded on August 28, 1995, in Curitiba, Paraná, Brazil, by a group of friends, among them Arnaldo Carvalho de Melo, who was a pioneer in the distribution of Linux and open source software in Brazilian Portuguese, Spanish and English for all of Latin America...

).

aptitude is based on the ncurses
Ncurses
ncurses is a programming library that provides an API which allows the programmer to write text user interfaces in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator...

 computer terminal
Computer terminal
A computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system...

 library, with which it provides an interface that incorporates some elements commonly seen in graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

s (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
Command-line interface
A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...

 functionality similar to that of apt- family of tools
Advanced Packaging Tool
The Advanced Packaging Tool, or APT, is a free user interface that works with core libraries to handle the installation and removal of software on the Debian GNU/Linux distribution and its variants...

 (apt-get, apt-cache, apt-listchanges, etc.). Aptitude also emulates most apt-get command line options, allowing it to act as a full replacement for apt-get. Note that it is bad practice to use aptitude and apt-get interchangeably, as they record changes made by a user separately. Newer versions also come with a GTK+ interface.

History

aptitude was created in 1999. At the time two other terminal-based
Text user interface
TUI short for: Text User Interface or Textual User Interface , is a retronym that was coined sometime after the invention of graphical user interfaces, to distinguish them from text-based user interfaces...

 APT front-ends were available: the dselect
Dselect
dselect is a computer program used to manage software packages in the Debian operating system.dselect is one of the oldest front-ends to dpkg, and the bulk of its development happened when it was originally written by Ian Jackson, who wrote it alongside dpkg....

 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
Heir apparent
An heir apparent or heiress apparent is a person who is first in line of succession and cannot be displaced from inheriting, except by a change in the rules of succession....

 to dselect
Dselect
dselect is a computer program used to manage software packages in the Debian operating system.dselect is one of the oldest front-ends to dpkg, and the bulk of its development happened when it was originally written by Ian Jackson, who wrote it alongside dpkg....

. 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
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

 module was rewritten; a new architecture
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...

 was created, based on the libsigc++
Libsigc++
Libsigc++ is a C++ library for typesafe callbacks.'libsigc++' implements a callback system for use in abstract interfaces and general programming. Libsigc++ is one of the earliest implementations of the signals and slots concept implemented using C++ template metaprogramming...

 callback
Callback (computer science)
In computer programming, a callback is a reference to executable code, or a piece of executable code, that is passed as an argument to other code. This allows a lower-level software layer to call a subroutine defined in a higher-level layer....

 library and concepts from modern widget toolkit
Widget toolkit
In computing, a widget toolkit, widget library, or GUI toolkit is a set of widgets for use in designing applications with graphical user interfaces...

s such as GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 and Qt
Qt (toolkit)
Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface , and also used for developing non-GUI programs such as command-line tools and consoles for servers...

. 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
Modal window
In user interface design, a modal window is a child window that requires users to interact with it before they can return to operating the parent application, thus preventing the workflow on the application main window...

. 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 iPhone OS
IPhone OS
iOS is Apple's mobile operating system. Originally developed for the iPhone, it has since been extended to support other Apple, Inc. devices such as the iPod Touch, iPad, and Apple TV. Apple, Inc. does not license iOS for installation on third-party hardware...

.

Easter egg

aptitude states that, unlike Advanced Packaging Tool
Advanced Packaging Tool
The Advanced Packaging Tool, or APT, is a free user interface that works with core libraries to handle the installation and removal of software on the Debian GNU/Linux distribution and its variants...

, 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 (a reference to Antoine de Saint-Exupéry
Antoine de Saint-Exupéry
Antoine de Saint-Exupéry , officially Antoine Marie Jean-Baptiste Roger, comte de Saint Exupéry , was a French writer, poet and pioneering aviator. He became a laureate of France's highest literary awards, and in 1939 was the winner of the U.S. National Book Award...

's The Little Prince
The Little Prince
The Little Prince , first published in 1943, is a novella and the most famous work of the French aristocrat writer, poet and pioneering aviator Antoine de Saint-Exupéry ....

) not unlike the original apt-get easter egg. Different versions of the program have different sequences.

GSoC

For the Google Summer of Code
Google Summer of Code
The Google Summer of Code is an annual program, first held from May to August 2005, in which Google awards stipends to hundreds of students who successfully complete a requested free or open-source software coding project during the summer...

 (2008), Obey Arthur Liu adopted the idea to develop a GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

 for aptitude (as well as some usability improvements for the ncurses
Ncurses
ncurses is a programming library that provides an API which allows the programmer to write text user interfaces in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator...

interface). The project has now been finished and merged into the main codebase.

External links

  • http://algebraicthunk.net/~dburrows/projects/aptitude/
  • http://packages.debian.org/aptitude
  • http://people.debian.org/~dburrows/aptitude-doc
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK