Pacman (package manager)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
pacman
Original author(s) Judd Vinet
Developer(s) Several[1]
Initial release 25 February 2002
Stable release 4.0.1[2] / 14 October 2011; 4 months ago (2011-10-14)
Development status Active
Written in C
Operating system Linux
Platform ARM[3][specify], PPC[4], IA-32, x86-64
Available in English
Type Package management system
License GNU General Public License[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 DeLi Linux, and Frugalware uses a fork of a pacman rewrite.[6]

Contents

[edit] Usage

Pacman is capable of resolving dependencies and automatically downloading and installing all necessary packages. In theory, a user need only 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; it can also use HTTP and local files, depending on how each repository is set up.

[edit] 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.[7] The following is an PKGBUILD for the patch package included in the pacman documentation as an example:[8]

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
}

[edit] libalpm

Pacman version 3.0 introduced a back-end library, libalpm, to which pacman became a front-end.[2] PackageKit includes support for the alpm library.[9]

[edit] 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.

[edit] GUIs

  • gtkpacman: A PyGTK pacman GUI. A subversion version is available as well (gtkpacman-svn). Not available in the repositories.

[edit] Update Notification Applets

  • pacmon: Tray applet that notifies the user of available pacman updates.
  • pacupdate: Tray notifications about new updates for Arch Linux.

[edit] See also

[edit] References

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages