Pacman (package manager)

From Wikipedia, the free encyclopedia

pacman

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 (2013-04-01)
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

References

  1. pacman.git, Official Pacman repository, retrieved 2013-04-01 
  2. pacman-4.1, arch-dev-public, 2013-04-01, retrieved 2013-04-01 
  3. Arch Linux ARM, retrieved 16 August 2011 
  4. Pacman 4.0.2-1 (ppc), Arch Linux PPC, retrieved 2012-03-26 
  5. root/COPYING - pacman.git, retrieved 2013-04-01 
  6. The Chakra Developers (8 January 2012), "Pacman", Chakra Wiki, retrieved 18 August 2012 
  7. The Frugalware Developer Team (3 April 2009), "Pacman-G2", Frugalware 1.5 (Nexon) Documentation, retrieved 15 August 2011 
  8. makepkg(8) Manual Page, archlinux.org, retrieved 2013-04-01 
  9. PKGBUILD(5) Manual Page, archlinux.org, retrieved 2013-04-01 
  10. "History", Pacman Home Page (archlinux.org), retrieved 2013-04-01 
  11. PackageKit - Feature Matrix, retrieved 15 August 2011 

External links

This article is issued from Wikipedia. The text is available under the Creative Commons Attribution/Share Alike; additional terms may apply for the media files.