Pacman (Arch Linux)
Encyclopedia
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.
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.
archives containing metadata
and a directory structure with files. Packages are built with makepkg using Bash
build scripts known as PKGBUILDs. The following is an PKGBUILD for the patch
package included in the pacman documentation as an example:
includes support for the alpm library.
Package management system
In software, a package management system, also called package manager, is a collection of software tools to automate the process of installing, upgrading, configuring, and removing software packages for a computer's operating system in a consistent manner...
, developed as part of the Arch Linux
Arch Linux
Arch Linux is an independently developed, Linux-based operating system for i686 and x86-64 computers. It is composed predominantly of free and open source software, and supports community involvement....
distribution
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
. 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
Frugalware
Frugalware Linux is a general-purpose Linux distribution designed for intermediate users who are familiar with command-line operations. Early versions were based on Slackware, but it is now an independently-developed distribution...
uses a fork of a pacman rewrite.
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
File synchronization
File synchronization in computing is the process of ensuring that computer files in two or more locations are updated via certain rules....
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
File Transfer Protocol
File Transfer Protocol is a standard network protocol used to transfer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server...
; it can also use HTTP
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....
and local files, depending on how each repository is set up.
Packages and build system
Pacman packages are compressed tarTar (file format)
In computing, tar is both a file format and the name of a program used to handle such files...
archives containing metadata
Metadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...
and a directory structure with files. Packages are built with makepkg using Bash
Bash
Bash is a Unix shell written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell . Released in 1989, it has been distributed widely as the shell for the GNU operating system and as the default shell on Linux, Mac OS X and Darwin...
build scripts known as PKGBUILDs. The following is an PKGBUILD for the patch
Patch
-Computing:* Patch , fix for a software program* Patch , UNIX utility* Patch, a 3-D Bézier curve used in computer graphics, or a primitive in some 3-D software packages* Patch Media, website for local news and events-Electronics:...
package included in the pacman documentation as an example:
libalpm
Pacman version 3.0 introduced a back-end library, libalpm, to which pacman became a front-end. PackageKitPackageKit
PackageKit is an open source and free suite of software applications designed to provide a consistent and high-level front end for a number of different package management systems...
includes support for the alpm library.
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 PyGTKPyGTKPyGTK is a set of Python wrappers for the GTK+ graphical user interface library. PyGTK is free software and licensed under the LGPL. It is analogous to PyQt and wxPython which are python wrappers for Qt and wxWidgets respectively. Its original author is the prominent GNOME developer James Henstridge...
pacman GUI. An svn version is available as well (gtkpacman-svn). Not available in the repositories.
Update Notification Applets
- pacmon: Tray applet that notifies the user of available pacman updates.
- pacupdate: Tray notifications about new updates for Arch Linux.
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