Pacman (package manager)
Screenshot of pacman running in a terminal | |
Original author(s) | Judd Vinet |
---|---|
Developer(s) | Several[1] |
Initial release | 25 February 2002 |
Stable release | 4.1[2] / 1 April 2013 |
Development status | Active |
Written in | C |
Operating system | GNU/Linux |
Platform | ARM (v 5,6,7),[3] PPC,[4] IA-32, x86-64 |
Available in | English |
Type | Package management system |
License | GNU GPL v2[5] |
Website | www.archlinux.org/pacman |
pacman is a software package manager, developed as part of the Arch Linux distribution. It was created by Arch Linux creator Judd Vinet. The pacman package manager is one of the major pillars of Arch Linux.
In addition to Arch Linux, pacman is also used by Parabola, Chakra Linux,[6] Destro, Manjaro and DeLi Linux. Frugalware uses a fork of a pacman rewrite.[7]
Usage
Pacman is capable of resolving dependencies and automatically downloading and installing all necessary packages. In theory, a user only needs to run a single command to completely update the system.
Pacman keeps the system up to date by synchronizing package lists with the master server. This server/client model also allows users to download/install packages with a simple command, complete with all required dependencies.
Packages are downloaded via FTP or HTTP; it can also use local files, depending on how each repository is set up.
Packages and build system
Pacman packages are compressed tar archives containing metadata and a directory structure with files. Packages are built with makepkg using Bash build scripts known as PKGBUILDs.[8] The following is a PKGBUILD for the patch package included in the pacman documentation as an example:[9]
pkgname=patch pkgver=2.5.4 pkgrel=3 pkgdesc="A utility to apply patch files to original sources" arch=('i686' 'x86_64') url="http://www.gnu.org/software/patch/patch.html" license=('GPL') groups=('base-devel') depends=('glibc' 'ed') source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz) md5sums=('ee5ae84d115f051d87fcaaef3b4ae782') build() { cd "$srcdir"/$pkgname-$pkgver ./configure --prefix=/usr make } package() { cd "$srcdir"/$pkgname-$pkgver make prefix="$pkgdir"/usr install }
libalpm
Pacman version 3.0 introduced a back-end library, libalpm, to which pacman became a front-end.[10] PackageKit includes support for the alpm library.[11]
Graphical front-ends
Pacman does not have an official graphical front-end. However, PackageKit front-ends can be used along with the following third party interfaces.
GUIs
- gtkpacman: A PyGTK pacman GUI. A subversion version is available as well (gtkpacman-svn). Not available in the repositories.
- wakka: Fork of gtkpacman.
- PackageKit
Update Notification Applets
- kalu: Tray notifications about news, (watched) official updates, (watched) AUR updates. Also includes a GUI for system upgrade.
- pacmon: Tray applet that notifies the user of available pacman updates.
- pacupdate: Tray notifications about new updates for Arch Linux.
See also
- List of software package management systems
- Package management
References
- ↑ pacman.git, Official Pacman repository, retrieved 2013-04-01
- ↑ pacman-4.1, arch-dev-public, 2013-04-01, retrieved 2013-04-01
- ↑ Arch Linux ARM, retrieved 16 August 2011
- ↑ Pacman 4.0.2-1 (ppc), Arch Linux PPC, retrieved 2012-03-26
- ↑ root/COPYING - pacman.git, retrieved 2013-04-01
- ↑ The Chakra Developers (8 January 2012), "Pacman", Chakra Wiki, retrieved 18 August 2012
- ↑ The Frugalware Developer Team (3 April 2009), "Pacman-G2", Frugalware 1.5 (Nexon) Documentation, retrieved 15 August 2011
- ↑ makepkg(8) Manual Page, archlinux.org, retrieved 2013-04-01
- ↑ PKGBUILD(5) Manual Page, archlinux.org, retrieved 2013-04-01
- ↑ "History", Pacman Home Page (archlinux.org), retrieved 2013-04-01
- ↑ PackageKit - Feature Matrix, retrieved 15 August 2011
External links
- Pacman homepage
- Pacman in the Arch Linux Wiki
- Pacman GUI Frontends in the Arch Linux Wiki
- DistroWatch Interview Judd Vinet talks about Arch Linux and Pacman in 2003
- The real story behind Arch Linux package signing
|