You are on page 1of 11

Advanced Packaging Tool

From Wikipedia, the free encyclopedia

Advanced Packaging Tools

apt-get requesting confirmation before an installation

Stable release

0.8.10[1] / November 30, 2010; 8 months ago

Preview release


Written in


Operating system



Unix and Unix-like operating systems


Package management system


GNU General Public License


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.[2] APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from binary files or by compiling source code.[2]

APT was originally designed as a front-end for dpkg to work with Debian's .deb packages, but it has since been modified to also work with the RPM Package Manager system via apt-rpm.[3] The Fink project has ported APT to Mac OS X for some of its own package management tasks, and APT is also available in OpenSolaris (included in the Nexenta OS distribution).[4]Telesphoreo is a project dedicated to porting APT to mobile operating systems, with a completed port to iOS.[5]

1 Usage

o o

1.1 Installation of software 1.2 Update, upgrade and dist-upgrade

2 Configuration and files

2.1 Files

3 Sources 4 APT pinning 5 Front-ends 6 History 7 See also 8 References 9 External links

There is no single "apt" program; apt is itself the package name containing the set of tools (and requiring the libraries) that support its functionality. A significant part of apt is a C++library of functions (another package known as libapt) which are used by these related front-end programs for dealing with packages, such as apt-get and apt-cache. They are commonly used in examples due to their simplicity and ubiquity; apt-get and apt-cache are of "important" priority in all current Debian releases, and are therefore installed in a default Debian installation. Apt can be functionally considered to be a front-end to dpkg, and a friendlier front end to this than dselect. While dpkg performs actions on individual packages, apt tools manage relations (especially dependencies) between them, as well as sourcing and management of higher-level versioning decisions (release tracking and version pinning). APT is often hailed as one of Debian's best features.[6][7][8][9] It is remarked that this quality comes from the strict quality controls of Debian policy.[10][11] A major feature in APT is the way it calls dpkg it does topological sorting of the list of packages to be installed or removed and calls dpkg in the best possible sequence. In some cases, it utilizes the --

force options in dpkg. However, it only does this when it is unable to calculate how to avoid the reason
dpkg requires the action to be forced.

The most used apt-get commands are apt-get install package-name (frequently the package-name is simply the name of the desired executable application), apt-get update, apt-

get upgrade and apt-get dist-upgrade. [edit]Installation

of software

An install directive is followed by the name of one or more packages desired for installation. Each package name is phrased as just the name portion of the package, not a fully qualified filename (for instance, in a Debian GNU/Linux system, libc6 would be the argument provided, not libc6_1.9.6-2.deb). Notably, all packages containing dependencies required by the package(s) specified for installation will also be automatically retrieved and installed. This was an original distinguishing characteristic of apt-based package management systems whereby software installation failure due to missing dependencies, a type of dependency hell, was specifically avoided. Another such distinction is remote repository retrieval of packages. A location configuration file (/etc/apt/sources.list) is used to locate the desired packages and retrieve them, and also obtain information about available (but uninstalled) packages. Other command option features (switches) may be used to override decisions made by apt-get's conflict resolution system. If a hyphen is appended to the package name (with no intervening space), the identified package will be removed if it is installed. Similarly, a plus sign can be used to designate a package to install. A specific version of a package can be selected for installation by following the package name with an equals and the version of the package to select. This will cause that version to be located and selected for install. Alternatively a specific distribution can be selected by following the package name with a slash and the version of the distribution or the archive name (stable, testing, unstable). Both of the version selection mechanisms can downgrade packages and must be used with care. Finally, the apt_preferences mechanism allows creating an alternative installation policy for individual packages. If no package matches the given expression and the expression contains one of ' .', '?' or '*', it is assumed to be a POSIX regular expression and it is applied to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring, so "lo.*" matches "how-lo" and "lowest". If this is undesired, the regular expression can be anchored with a '^' or '$' character, or a more specific regular expression can be created.


upgrade and dist-upgrade

update is used to resynchronize the package index files from their sources. The lists of available packages are fetched from the location(s) specified in/etc/apt/sources.list. For example, when using a Debian archive, this command retrieves and scans the Packages.gz files, so that information about new and updated

packages is available. An update should always be performed before a safe-upgrade or dist-upgrade. Be aware that the overall progress meter will not always be correct as the size of the package files cannot be known in advance.

upgrade is used to install the newest versions of all packages currently installed on the system from the sources enumerated in /etc/apt/sources.list. Packages currently installed with new versions available are retrieved and upgraded; under no circumstances are currently installed packages removed, or packages not already installed retrieved and installed. New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version. An update must be performed first, so that apt-get knows that new versions of packages are available.

dist-upgrade, in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages; apt-get has a "smart" conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. The /etc/apt/sources.list file contains a list of locations from which to retrieve desired package files.[12] aptitude has a smarter dist-upgrade feature called full-upgrade.[13]


and files

/etc/apt has the apt configuration folders and files.

apt-config is the APT Configuration Query program.[14] apt-config dump shows the configuration.[15]

[edit]Files /etc/apt/sources.list: Locations to fetch packages from. /etc/apt/sources.list.d/: Additional source list fragments. /etc/apt/apt.conf: APT configuration file. /etc/apt/apt.conf.d/: APT configuration file fragments. /etc/apt/preferences: version preferences file. This is where you
would specify "pinning", i.e. a preference to get certain packages from a separate source or from a different version of a distribution.

/var/cache/apt/archives/: storage area for retrieved package


/var/cache/apt/archives/partial/: storage area for package

files in transit.

/var/lib/apt/lists/: storage area for state information for each

package resource specified in sources.list


/var/lib/apt/lists/partial/: storage area for state information

in transit.

APT relies on the concept of repositories in order to find software and resolve dependencies. For apt, a repository is a directory containing packages along with an index file. This can be specified as a networked or CDROM location. The Debian project keeps a central repository of over 25,000 software packages ready for download and installation. For extra packages, any number of additional repositories can be added to APT's sources.list configuration file (/etc/apt/sources.list) and then be queried by APT. Graphical front-ends often allow modifying sources.list more simply (apt-setup). Once a package repository has been specified (like during the system installation), packages in that repository can be installed without specifying a source. In addition to network repositories, compact discs and other storage media (USB keydrive, hard disks...) can be used as well, using apt-cdrom [16] or adding file:/[17] to the source list file. Apt-cdrom can specify a different folder than a cd-rom, using the -d option (i.e. a hard disk or a USB keydrive). The Debian CDs available for download contain Debian repositories. This allows non-networked machines to be upgraded. Also one can use apt-zip. Problems may appear when several sources offer the same package(s). Systems that have such possibly conflicting sources can use APT pinning to control which sources should be preferred.



The APT pinning feature allows administrators to force APT to choose particular versions of packages which may be available in different versions from different repositories. This allows administrators to ensure that packages are not upgraded to versions which may conflict with other packages on the system, or that have not been sufficiently tested for unwelcome changes. In order to do this, the pins in APT's preferences file (/etc/apt/preferences) must be modified,[18] although graphical front-ends often make pinning simpler.


Synaptic Package Manager is one of the frontends available for APT

Several other front-ends to APT exist, which provide more advanced installation functions and more intuitive interfaces. These include:

Synaptic Package Manager, a GTK+ graphical user interface Ubuntu Software Center, a GTK+ graphical user interface replacement for Synaptic

aptitude, a versatile alternative to dselect KPackage, part of KDE Adept Package Manager, a graphical user interface for KDE (deb, rpm, bsd)

PackageKit, a frontend. GDebi, a GTK-based tool sponsored for Ubuntu. (There is also a Qt version, available in the Ubuntu repositories a gdebi-kde.)

apt-cdrom, to add a new CDROM to APT's list of available sources.lists (list of available repositories). It is necessary to use apt-cdrom to add CDs to the APT system, it cannot be done by hand.

apt-zip, use apt with removable media, specifically USB flash drives. apt:foo downloading and installing software by clicking on a web-link (experimental) [19]

gnome-apt is a gtk/GNOME-widget-based graphical front-end. Cydia, an iOS front-end Hildon Application Manager (Maemo Application), a Maemo front-end APT Daemon, a front-end that runs as a service to allow standard users to install software through PolicyKit and is in turn the framework that the Ubuntu Software Center (along with the Linux Mint Software Manager) uses to not be root and still run.

APT front-ends can:

Search for new packages. Upgrade packages. Install or remove packages. Upgrade the whole system to a new release.

APT front-ends can list the dependencies of packages being installed or upgraded, ask the administrator if packages recommended or suggested by newly installed packages should be installed too, automatically install dependencies and perform other operations on the system such as removing obsolete files and packages.

The original effort that led to the apt-get program was the dselect replacement project known by its codename deity.[20] This project was commissioned by Brian White, the Debian Release Manager at the time. The very first functional version of apt-get was called dpkg-get and was only intended to be a test program for the core library functions that would underpin the new UI.[21] Much of the original development of APT was done on IRC, so records have been lost. The 'Deity Creation Team' mailing list archives include only the major highlights. The Deity name was abandoned as the official name for the project due to concerns over the religious nature of the name. The APT name was eventually decided after considerable internal and public discussion. Ultimately the name was proposed on IRC, accepted and then finalized on the mailing lists.[22] As originally used, APT is not an acronym, but a proper name. The name gained mindshare during IRC discussions[citation needed] due to the variety of possible acronym expansions and it was ultimately decided that the official use of APT would be as a proper name and no official expansion would ever be presented by the team. APT was introduced in 1998 and original test builds were circulated on IRC. The first Debian version that included it was Debian 2.1, released on 9 March 1999.[23] In the end the original goal of the Deity project of replacing the dselect UI was a failure. Work on the user interface (UI) portion of the project was abandoned (the UI directories were removed from the CVS system) after the first public release of apt-get. The response to APT as a dselect method and a command line utility was so great and positive that all development efforts focused on maintaining and improving the tool. It was not until much later that several independent people built UIs on top of the capable libapt-pkg. The final push of the first APT era was to build a complete dpkg replacement (libapt-inst). This project was also a failure, however the partial code found a use as part of the secretive 'Project Betsy' program, which resulted in the highly efficient apt-ftparchive and libapt python bindings. After this, the original author faded away and maintainership of APT languished.

Eventually, a new team picked up the project, began to build new features and released version 0.6 of APT which introduced the Secure APT feature, using strong cryptographic signingto authenticate the package repositories.[24]



Free software portal


AppStream Package management system apt-file apt-rpm Alien Linux Standard Base PackageKit Pkgsrc Wajig APTonCD Ubuntu Software Center


^ "Debian -- Details of package apt". Retrieved 2010-12-14.

2. 3. 4. 5. 6.

a b

"apt-get(8) - Linux man page". Retrieved 2008-05-12.

^ "APT-RPM". Retrieved 2008-05-12. ^ "Fink - About". Retrieved 2008-05-12. ^ "Telesphoreo Tangelo". Retrieved 2008-11-21. ^ Byfield, Bruce (2004-12-09). "An apt-get primer". Archived from the original on 2010-04-19.

7. 8.

^ "From the archives: the best distros of 2000". Tux Radar. ^ Dorgan, David (2004-01-19). "Migrating to Debian". Archived from the original on 2010-04-19.


^ "Mobile Linux development with Familiar and a minimal Debian". Mobile Tux.

10. ^ Why Debian 11. ^ Debian policy manual 12. ^ Linux Man pages 13. ^ Discussion on dist-upgrade vs. full-upgrade

14. ^ Apt-Config 15. ^ Query APT Configuration Using apt-config - Debian Admin 16. ^ apt-cdrom 17. ^ i.e. Deb file:/mnt/install stable main contrib. non-free 18. ^ "Apt Pinning". Debian Wiki. Retrieved 2006-09-19. 19. ^ OzOS | apt:foo 20. ^ Deity Mailing List, 1997-04. 21. ^ Deity Mailing List, 1998-03. 22. ^ Deity Mailing List, 1998-03. 23. ^ "A Brief History of Debian". 24. ^ "Secure APT". Debian Wiki. Retrieved 2006-09-05.



apt-get Manual page APT HOWTO apt-cache apt.conf apt_preferences Python-apt Using apt offline apt-zip:

Offline functionality.

apt-offline Adding source lists using apt-setup apt-cdrom apturl

[show] Debian

View page ratings

Rate this page

What's this? Trustworthy Objective Complete Well-written I am highly knowledgeable about this topic (optional)

Submit ratings Categories: Dpkg | Free package management systems | Free software programmed in C++ | Free crossplatform software | Linux package management-related software | Ubuntu (operating system)

Log in / create account

Article Discussion Read Edit View history

Main page Contents Featured content Current events Random article Donate to Wikipedia

Interaction Help About Wikipedia Community portal Recent changes Contact Wikipedia

Toolbox Print/export Languages

Azrbaycanca Catal esky Deutsch Espaol Esperanto Euskara Franais Galego slenska Italiano Latvieu Magyar Nederlands rsk b k Polski

Portugus Simple English S venina Suomi Svenska Trke Ting Vit

This page was last modified on 4 September 2011 at 01:35. Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. See Terms of use for details. Wikipedia is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.

Contact us Privacy policy About Wikipedia Disclaimers Mobile view