AA-123RF-23683716-Ivan_Danik-123RF.jpg

© Ivan Danik, 123RF

Die Arch-Linux Paketverwaltung mit Pacman und AUR

Guten Appetit

Als Rolling-Release-Distribution steht Arch Linux vor der Herausforderung, täglich neue Anwendungen und Updates verwalten zu müssen. Der Arch-Paketmanager Pacman stemmt die Arbeit ohne Murren und Knurren. Den offiziellen Paketquellen steht das Arch User Repository zur Seite.

"Never change a running system", lautet eine altbekannte Devise. Wer erst einmal sein System perfekt eingerichtet hat, der sollte in Zukunft besser nicht zu viel ändern. Im Endeffekt halten sich die meisten Distributionen an diese Regel: Nach der Veröffentlichung spielen die Entwickler nur noch Sicherheitsupdates und essentielle Fehlerbereinigungen in die Paketverwaltung ein, neue Programmversionen gibt es nur fein dosiert.

Die Paketverwaltung der Rolling-Release-Distribution Arch Linux [1] muss deutlich mehr bewerkstelligen: Tagtäglich laufen neue Programme und Programmversionen auf, die in die Paketquellen einpflegt werden möchten. Diese Arbeit übernehmen auch bei Arch Paketbetreuer, in der Regel unentgeltlich als freiwillige Helfer. Als Anwender kommen Sie bereits bei der Installation des Systems mit der Arch-Paketverwaltung in Berührung [2], da die Distribution keinen Installer bietet und Sie Ihr persönliches Arch-System von Hand zusammenbauen müssen – oder besser dürfen.

Kein Spiel: Pacman für Arch

Der zentrale Paketmanager bei Arch Linux nennt sich Pacman. Das Programm verwaltet einfache Binärpakete im Format .pkg.tar.xz (früher einmal .pkg.tar.gz), die das Programm in der Regel aus den offiziellen Paketquellen bezieht. Es lassen sich allerdings auch inoffizielle Paketquellen einbinden und so nicht direkt unterstützte Programme über die Paketverwaltung installieren. Alternativ bauen Sie über das Arch Build System (ABS) in eigener Regie Programme und spielen diese dann per Pacman ein. So landen diese wie die aus den Paketquellen installierten Pakete in der zentralen Datenbank, was Dateikonflikte vermeidet.

Pacman Rosetta

Viele Linux-User fühlen sich aufgrund der Paketverwaltung mit einer Distribution und deren Derivaten verbunden. Wer mit Ubuntu die ersten Schritte unter Linux gemacht hat, fühlt sich alleine aufgrund der Vertrautheit von apt-get auch unter Debian oder Linux Mint auf Anhieb wohl. Wer sich gut mit einer Paketverwaltung auskennt und schnell wissen möchte, wie man etwa ein yum autoremove, apt-get autoremove oder emerge --depclean unter Arch realisiert, der wirft am besten einen Blick auf Pacman Rosetta [21]: Wie der Stein von Rosette [22] stellt dieser Artikel im Arch-Wiki alle Paketverwaltungen gegenüber, sodass sich die Befehle schnell übersetzen lassen.

Im Gegensatz zum dynamischen Debian-Duo dpkg und apt-get übernimmt Pacman sämtliche Aufgaben allein: Es sucht in der Datenbank (Listing 1), lädt Pakete herunter, installiert (Listing 2) und aktualisiert diese. Das Tool überprüft die Installation oder löscht nicht mehr gewünschte Programme von der Festplatte. Dabei müssen Sie mit kryptischen Optionen wie -Ss, -Syu oder -Runs Vorlieb nehmen (siehe Tabelle "Pacman-Befehle"). Dies erschwert den Einstieg ein wenig, da sich solche Kommandos nur schwer einprägen lassen. Eine grafische Oberfläche wie Synaptic oder das Ubuntu Software Center gibt es für Pacman nicht – zumindest nicht offiziell.

Listing 1

$ pacman -Ss chromium
extra/chromium 43.0.2357.134-1
    The open-source project behind Google Chrome, an attempt at creating a
    safer, faster, and more stable browser
extra/qt5-webengine 5.5.0-1 (qt qt5)
    Provides support for web applications using the Chromium browser project
community/chromium-bsu 0.9.15.1-1 [Installiert]
    A fast paced top scrolling shooter
[...]

Listing 2

# pacman -S chromium
Löse Abhängigkeiten auf...
Suche nach in Konflikt stehenden Paketen...
Paket (1)       Neue Version     Netto-Veränderung
extra/chromium  43.0.2357.134-1         166,80 MiB
Gesamtgröße der zu installierenden Pakete:  166,80 MiB
:: Installation fortsetzen? [J/n] j
(1/1) Prüfe Schlüssel im Schlüsselring             [----------------------] 100%
[...]
(1/1) Installiere chromium                         [----------------------] 100%
Optionale Abhängigkeiten für chromium
    kdebase-kdialog: needed for file dialogs in KDE
    gnome-keyring: for storing passwords in GNOME keyring [Installiert]
    kdeutils-kwalletmanager: for storing passwords in KWallet

Pacman-Befehle

Befehl Funktion
pacman -Ss Begriff1 Begriff2 Sucht in den Namen und Beschreibungen der Pakete den Suchbegriff.
pacman -S Paket1 Paket2 Installiert die aufgeführten Pakete mitsamt Abhängigkeiten.
pacman -Syu Aktualisiert das komplette System.
pacman -Rs Paket1 Paket2 Deinstalliert die genannten Pakete.
pacman -Qdtq | pacman -Rs - Entfernt nicht mehr benötigte Abhängigkeiten.
pacman -Scc Leert den Paket-Cache und schafft so mehr Platz auf der Festplatte.

Arch teilt seine Paketquellen in sechs unterschiedliche Zweige auf (Tabelle "Arch-Repositories"). Die wichtigsten Pakete, wie der Kernel, GCC oder zentrale Tools zum Bauen von Programmen stammen aus Core. An diesen Paketen dürfen nur die Stammentwickler Hand anlegen, genauso wie an den Paketen aus Extra. Zu Letzteren zählen zentrale Linux-Komponenten wie X-Server oder Desktop-Umgebungen sowie wichtige Programme wie Firefox, LibreOffice oder Vim. Die Community-Repositories entsprechen im Prinzip den Universe-Quellen Ubuntus. Etwa 40 erfahrene und vertrauenswürdige "Trusted User" [3] kümmern sich um zahlreiche Programme, die es bisher noch nicht in die Kerndistribution geschafft haben.

Arch-Repositories

Repository Inhalt
[core] Hier liegen grundlegende Programme, die es für den Betrieb unbedingt braucht.
[extra] Zusätzliche Anwendungen wie X-Server oder Desktops in der jeweils aktuellen Version.
[testing] Neue Pakete und Versionen, die noch nicht ausreichend getestet wurden.
[community] Zusätzliche Programme, die früher einmal nur im AUR enthalten waren. Die Betreuung der Paketquelle obliegt nicht direkt den Arch-Entwicklern, sondern vertrauenswürdigen Usern.
[multilib] 32-Bit-Anwendungen, die auf 64-Bit-Systemen installiert werden sollen.
[multilib-testing] Aufgabe identisch zu [multilib], enthält jedoch noch zu testende Pakete.

Pacman-Konfiguration

Die Konfiguration von Pacman geschieht über die Datei /etc/pacman.conf. Sie beinhaltet nicht nur Informationen, welche Paketquellen wo zu benutzen sind (oft über Mirror-Listen eingebunden), sondern bestimmt auch das Verhalten des Paketmanagers. So lassen sich hier zum Beispiel über die Optionen IgnorePkg und IgnoreGroup gezielt Pakete oder gleich ganze Gruppen vom Update-Prozessen ausklammern (Listing 3). Beachten Sie jedoch, dass Arch Linux als Rolling-Release-Distribution konzipiert ist und Sie durch die Blockade eines Pakets auch die Aktualisierung seiner Abhängigkeiten unterbinden (Listing 4). Nach längerer Zeit zieht sich ein Rattenschwanz an blockierten Paketen durch das System.

Listing 3

[...]
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
IgnorePkg   = gimp darktable
IgnoreGroup = kde kdebase kdeutils libreoffice qt kdeplasma
[...]

Listing 4

# pacman -Syu
:: Synchronisiere Paketdatenbanken...
 core ist aktuell
[...]
:: Starte vollständige Systemaktualisierung...
Warnung: linux: Ignoriere Paket-Aktualisierung (4.0.7-2 => 4.1.2-2)
Warnung: linux-headers: Ignoriere Paket-Aktualisierung (4.0.7-2 => 4.1.2-2)
Löse Abhängigkeiten auf...
Warnung: Ignoriere Paket linux-4.1.2-2
Warnung: Kann "linux>=4.1" nicht auflösen (eine Abhängigkeit von "virtualbox-host-modules")
:: Das folgende Paket kann aufgrund nicht auflösbarer Abhängigkeiten nicht aktualisiert werden:
      virtualbox-host-modules

Pacman optisch ein wenig aufzubohren, birgt hingegen keine Gefahren (Listing 5). Unter den Misc options schalten Sie ein wenig Farbe hinzu (Color), erweitern die Ausgabe der Paketänderungen von Pacman um eine Gegenüberstellung der Versionsnummern und Paketgrößen (VerbosePkgLists (für die Darstellung müssen Sie das Terminal etwas größer als die üblichen 80 Zeichen ziehen) oder verwandeln den Fortschrittsbalken mit einem zusätzlich eingefügten ILoveCandy in einen wahrhaftigen Pac-Man (Abbildung 1).

Listing 5

[...]
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
VerbosePkgLists
ILoveCandy
[...]
Abbildung 1: Mit den richtigen Einstellungen gibt Pacman deutlich mehr Informationen zu den anstehenden Aktualisierungen aus.

Am Ende der /etc/pacman.conf liest Pacman die aufzusuchenden Paketquellen aus. Core, Extra und Community aktivieren die meisten User; Multilib dient dazu, 32-Bit-Software auf einem 64-Bit-System auszuführen. Auch diese Quelle gehört daher bei vielen Arch-Nutzern zum Standardrepertoire. Von Testing und Multilib-Testing sollten Sie eher Abstand nehmen: Diese Quellen dienen wie eingangs beschrieben zum Testen neuer Pakete, die erst nach erfolgreich bestandener Prüfung in die herkömmlichen Paketquellen wandern. Die Standardquellen bezieht Pacman aus der Datei /etc/pacman.d/mirrorlist. Sie enthält eine Liste sämtlicher Arch-Mirrors [4], von denen allerdings die meisten auskommentiert sind.

Bei Bedarf aktivieren Sie sämtliche Mirrors aus Ihrer Region – beispielsweise Deutschland – und prüfen dann mit rankmirrors, welcher davon am schnellsten arbeitet (Listing 6). Die schnellsten Mirror-Server kopieren Sie dann aus der pacman.conf in die neu zu erstellende Datei /etc/pacman.d/mymirrors (Listing 7) und referenzieren diese zusätzlich in allen Sektionen der pacman.conf vor der Original-Mirrorlist (Listing 8). So nutzt Pacman immer die lokal schnellsten Mirror-Server, auch wenn es zu Änderungen an der über das Paket pacman-mirrorlist verwalteten Mirrorlist kommt.

Listing 6

$ rankmirrors -n 0 -t -v /etc/pacman.d/mirrorlist
Querying servers. This may take some time...
http://ftp.hawo.stw.uni-erlangen.de/archlinux/$repo/os/$arch ... 0,093
http://mirror.netcologne.de/archlinux/$repo/os/$arch ... 0,090
http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch ... 0,159
http://ord.mirror.rackspace.com/archlinux/$repo/os/$arch ... 0,945
Servers sorted by time (seconds):
http://mirror.netcologne.de/archlinux/$repo/os/$arch : 0,090
http://ftp.hawo.stw.uni-erlangen.de/archlinux/$repo/os/$arch : 0,093
http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch : 0,159
http://ord.mirror.rackspace.com/archlinux/$repo/os/$arch : 0,945

Listing 7

Server = http://mirror.netcologne.de/archlinux/$repo/os/$arch
Server = http://ftp.hawo.stw.uni-erlangen.de/archlinux/$repo/os/$arch
Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch

Listing 8

[...]
[core]
Include = /etc/pacman.d/mymirrors
Include = /etc/pacman.d/mirrorlist
[...]

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 9 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Die Arch-Derivate Antergos und Manjaro in der Praxis
    Arch Linux will eine einfache, anfängertaugliche Linux-Distribution sein. Die Derivate Manjaro und Antergos legen gar noch eine Scheibe drauf.
  • Fundamental
    Arch Linux versorgt den Anwender stetig mit den neuesten Errungenschaften der Open-Source-Welt. Dass das System dabei dennoch stabil bleibt, spricht für das ausgeklügelte Paketmanagement.
  • Schnell gekontert
    Meist taucht nur wenige Stunden nach dem Release eines quelloffenen Programms dieses bereits in den Paketquellen von Arch Linux auf. Dabei geht schon mal etwas zu Bruch – besonders, wenn Sie Ihr Arch mit Software aus dem AUR anreichern.
  • Marsmännchen
    Die Darstellung von Schriften überzeugt in Arch Linux out-of-the-box nur wenig. Per Patch lässt sich besseres Antialiasing nachrüsten. Dabei gilt es jedoch, ein paar Fallstricke zu beachten.
  • Mehrwert
    Die prominenten Linux-Distributionen bilden immer wieder die Grundlage für Derivate – so auch bei Arch Linux. Wir sehen nach, wie viel Arch noch in den diversen Ablegern der Rolling-Release-Distribution für fortgeschrittene Anwender steckt.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 1 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 1 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...
Tinte sparen bei neuem Drucker
Lars Schmitt, 30.11.2017 17:43, 2 Antworten
Hi Leute, ich habe mir Anfang diesen Monats einen Tintenstrahldrucker angeschafft, der auch su...