Pacman (pakethanterare)

Pacman är ett verktyg som hanterar programpaket i Linux. Det använder enkla komprimerade filer som paketformat. Pacman strävar inte efter att "göra allt" utan kommer att lägga till, ta bort och uppgradera paket i systemet, och tillåter användarna att ställa frågor till paketdatabasen efter installerade paket, filer och ägare. Pacman försöker också att hantera paketberoenden automatiskt och kan hämta paket från en fjärrserver när de behövs.

Pacman är standard i Arch Linux och många av de linuxdistributioner som baseras på Arch, men pacman finns även hos DeLi Linux samt hos Frugalware Linux som använder en fork kallad Pacman-G2.

Användning 
Pacman är kapabel att lösa paketberoenden och automatiskt ladda ned och installera alla nödvändiga delar som ett program kräver. I teorin kan en användare uppdatera hela sitt operativsystem med ett enda kommando. Pacman håller systemet uppdaterat genom att synkronisera sig med en eller flera huvudservrar för att jämföra mjukvaruversioner. Från samma servrar kan man med enkla kommandon ladda ned och installera nya program.

Paketen som klienten laddar ned kommer från ett antal servrar runt om i världen, normalt sett väljer man de servrar som är snabbast för klienten för att få maximal nedladdningshastighet. Pacman kan även kombineras med nedladdningsprogram som wget, aria2 och airpac för att ladda ned paketen från flera servrar samtidigt och på så vis öka hastigheten om man inte når upp till sin maximala hastighet från en server.

Grundläggande exempel på användning av pacman 
Exempel för att installera webbläsaren Firefox med pacman:
 # pacman -S firefox
För att avinstallera enbart Firefox skriver man:
 # pacman -R firefox
Eller med -Rs om man även vill ta bort eventuella paketberoenden som inte längre används av Firefox eller några andra program installerade:
 # pacman -Rs firefox

Paket och byggsystem
Pacman paket laddas ned som komprimerade Tar-filer som innehåller metadata samt en katalogstruktur över filer. Paketen byggs med makepkg genom Bash byggskript kallade PKGBUILDs.

Följande är en PKGBUILD för en programfix, inkluderad i pacman dokumentationen som ett exempel:
 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 var en stor omstrukturering och innebar en splittning av pacman till två delar, libalpm blev namnet på back-end, och pacman blev front-end för libalpm. Detta löste många programberoenden, snabbade upp pacman samt underlättade för framtida front-ends att utvecklas direkt till programkärnan libalpm.

Grafiska front-ends 
Pacman har inget officiellt GUI, men för den som vill använda ett grafiskt gränssnitt så finns PackageKit som har stöd för många olika pakethanteringssystem, bland annat ALPM som är akronym för Arch Linux Package Management, vilket inefattar Pacman.

Även följande små program finns för att underlätta hanteringen av sina pacman program:

KDE/QT 
 Shaman är ett komplett gränssnitt till Qt 4 för libalpm. Shaman omfattar även ett antal extra funktioner, grafiska inställningar, och stöd för att sammanställa från källa till ABS (Arch Build System).
 pacmanager-svn, ett paket hanteraren i Qt 4 bygger på pacman.
 Chase, KDE demonen som hanterar uppdateringar av libapqm.
 kpacupdate, panelprogram för KDE som talar om när det finns nya uppdateringar till Arch Linux.

Gnome/GTK+ 
 YAPG-gtk (Yet Another Pacman GUI) är ett komplett och fullt utrustad skal för pacman pygtk.
 guzuta, front-end skriven i PyGTK.
 gtkpacman: Ett PyGTK pacman GUI. En SVN version finns tillgänglig (gtkpacman-svn).
 pacmon: panelprogram som notifierar om det finns nya uppdateringar till användaren.
 pacupdate: panelprogram som talar om när det finns nya uppdateringar till Arch Linux.

Referenser

Noter

Se även 

 Pakethanterare
APT Advanced Packaging Tool
RPM Red Hat Package Manager

Externa länkar 
Pacman hemsida
Pacman i Arch Linux wikin.
Pacman GUI Front-end i Arch Linux wikin.
DistroWatch Interview Judd Vinet talar om Arch Linux och pacman år 2003.

Pakethanterare
Programvaror 2002