This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
|
Original author(s) | Ian Murdock |
---|---|
Developer(s) | The Debian Project |
Initial release | January 1994 [1] |
Stable release | |
Preview release | |
Repository | |
Written in | C, C++, Perl [4] |
Operating system | Unix-like |
Available in | 42 languages [5] |
Type | Package manager |
License | GPLv2 |
Website | wiki |
dpkg is the software at the base of the package management system in the free operating system Debian and its numerous derivatives. dpkg
is used to install, remove, and provide information about .deb packages.
dpkg
(Debian Package) itself is a low-level tool. APT (Advanced Package Tool), a higher-level tool, is more commonly used than dpkg
as it can fetch packages from remote locations and deal with complex package relations, such as dependency resolution. Frontends for APT, like aptitude (ncurses) and synaptic (GTK), are used for their friendlier interfaces.
The Debian package "dpkg" provides the dpkg
program, as well as several other programs necessary for run-time functioning of the packaging system, including dpkg-deb
, dpkg-split
, dpkg-query
, dpkg-statoverride
, dpkg-divert
and dpkg-trigger
. [6] It also includes the programs such as update-alternatives
and start-stop-daemon
. The install-info
program used to be included as well, but was later removed [7] as it is now developed and distributed separately. [8] The Debian package "dpkg-dev" includes the numerous build tools described below.
The first attempt at a package management system for Linux was possibly the development of StopAlop by Greg Wettstein at the Roger Maris Cancer Center in Fargo, North Dakota. It provided inspiration for the creation of dpkg. [9] [10] [11] dpkg was originally created by Ian Murdock in January 1994 as a Shell script. [1] Matt Welsh, Carl Streeter and Ian Murdock then rewrote it in Perl, [12] and then later the main part was rewritten in C by Ian Jackson in 1994. [13] [14] The name dpkg was originally a shortening of "Debian package", but the meaning of that phrase has evolved significantly, as dpkg the software is orthogonal to the deb package format as well as the Debian Policy Manual which defines how Debian packages behave in Debian.
To install a .deb package: [15]
dpkg -i filename.deb
where filename.deb is the name of the Debian package (such as pkgname_0.00-1_amd64.deb).
The list of installed packages can be obtained with:
dpkg -l [optional pattern]
To remove an installed package:
dpkg -r packagename
dpkg-dev contains a series of development tools required to unpack, build and upload Debian source packages. [16] These include:
The dpkg database is located under/var/lib/dpkg
; the "status" file contains the list of installed software on the current system. There is no information about repositories in this database. [15]
The dpkg source package also contains dselect, a frontend software. [17]
wpkg was created as a dpkg look-alike that would run under the Microsoft Windows operating system. [18] It subsequently evolved to include functionality similar to parts of the APT suite, improved repository management, distribution management and was ported to Linux and Unix-like systems, including Cygwin, Mingw32, macOS, OpenSolaris and FreeBSD. [19] [20] It retains .deb file format compatibility [21] and is supplied with the ready-to-use executable wpkg.exe. As of March 2024 [update] , the most recent release of the software was in 2015. [19]
Debian, also known as Debian GNU/Linux, is a free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kernel, and is the basis for many other Linux distributions.
A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.
Advanced Package Tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian and Debian-based Linux distributions. APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from precompiled files or by compiling source code.
The Fink project is an effort to port and package open-source Unix programs to macOS. Fink uses dpkg and APT, as well as its own frontend program, fink
.
The Yellowdog Updater Modified (YUM) is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.
deb is the format, as well as filename extension of the software package format for the Debian Linux distribution and its derivatives.
slapt-get is an APT-like package management system for Slackware. Slapt-get tries to emulate the features of Debian's (apt-get
) as closely as possible.
Wajig is a simplified wrapper to Debian's package management system dpkg/APT. Wajig provides the functionality of apt-get, dpkg, dpkg-deb, apt-cache and other tools. These tools launch as a subprocess. Wajig also provides extra functionality beyond that of the stock apt and dpkg tools. For example, the command wajig sizes provides a listing of all installed packages and the amount of disk space they require, from smallest to largest.
VectorLinux, abbreviated VL, was a Linux distribution for the x86 platform based on the Slackware Linux distribution, originally developed by Canadian developers Robert S. Lange and Darell Stavem. Since version 7 the Standard Edition is also available for the x86-64 platform, known as VLocity64 7.
Ian Jackson is a longtime free software author and Debian developer. Jackson wrote dpkg, SAUCE, userv and debbugs. He used to maintain the Linux FAQ. He runs chiark.greenend.org.uk, a Linux system which is home to PuTTY among other things.
AppImage is an open-source format for distributing portable software on Linux. It aims to allow the installation of binary software independently of specific Linux distributions, a concept often referred to as upstream packaging. As a result, one AppImage can be installed and run across Ubuntu, Arch Linux, and Red Hat Enterprise Linux without needing to use different files. It aims to be a format that is self-contained, rootless, and independent of the underlying Linux distribution.
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".
Gjiten is a free software dictionary application developed for Linux operating systems, using the GNOME development libraries. It functions primarily as a Japanese–English dictionary tool meant to search EDICT dictionary files, but it has other features such as hand-drawn kanji recognition. It was first published on December 25, 1999. Its current release is v2.6, available since October 28, 2006. The source code is downloadable from the developers' website.
Quilt is a software utility for managing a series of changes to the source code of any computer program. Such changes are often referred to as "patches" or "patch sets". Quilt can take an arbitrary number of patches as input and condense them into a single patch. In doing so, Quilt makes it easier for many programmers to test and evaluate the different changes amongst patches before they are permanently applied to the source code.
The Debian build toolchain is a collection of software utilities used to create Debian source packages (.dsc
) and Debian binary packages from upstream source tarballs.
RPM Package Manager (RPM) is a free and open-source package management system. The name RPM refers to the .rpm
file format and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.
DebWrt is a discontinued, niche Linux distribution mainly installed on embedded systems. It was built on top of an OpenWrt base which was used to load a fully functional version of Debian from the RootFS stored on the attached USB storage device. For easy installation and deinstallation of packages it relied on the dpkg Package management system. DebWrt used the command-line interface of Bash. There was no web-based GUI interface.
A delta update is a software update that requires the user to download only those parts of the software's code that are new, or have been changed from their previous state, in contrast to having to download the entire program. The use of delta updates can save significant amounts of time and computing bandwidth. The name "delta" derives from the mathematical science use of the Greek letter delta, Δ or δ to denote change.
Zstandard is a lossless data compression algorithm developed by Yann Collet at Facebook. Zstd is the corresponding reference implementation in C, released as open-source software on 31 August 2016.