Pakete unter Arch Linux mit makepkg kompilieren
Die direkte Verwendung von makepkg
kann zu einer überladenen Systemumgebung führen. Es ist wichtig, dass die Paketgruppe base-devel installiert ist. Standardmäßig bleiben bei der Nutzung von makepkg
alle zur Kompilierung benötigten Abhängigkeiten installiert – auch wenn diese für die Ausführung des Pakets nicht notwendig sind. Dieses Verhalten lässt sich ändern, was jedoch das Protokoll /var/log/pacman.log
unnötig belasten kann.
Dieser Text konzentriert sich ausschließlich auf den Einsatz von makepkg
zur Paketkompilierung.
makepkg Schritt für Schritt nutzen
Stelle sicher, dass die Paketgruppe base-devel installiert ist. Fehlt sie, geht makepkg
davon aus, dass sie vorhanden ist – was zu Fehlern führt, wenn benötigte Tools fehlen. makepkg
selbst ist Bestandteil des Pakets pacman und somit bereits im System vorhanden.
base-devel installieren
# pacman -S base-devel
Führe makepkg
im Verzeichnis aus, in dem sich die PKGBUILD
-Datei befindet – in der Regel jenes, das durch einen git clone
aus dem AUR erstellt wurde. Standardmäßig lädt makepkg
den Quellcode, kompiliert ihn und erstellt das fertige Paket.
Häufig verwendete Optionen von makepkg
-s
,--syncdeps
: Installiert automatisch alle Abhängigkeiten, die für den Bau und die Nutzung des Pakets erforderlich sind. Befinden sich benötigte Abhängigkeiten im AUR, müssen diese vorher manuell installiert oder aus einem lokalen Repository bezogen werden.-r
,--rmdeps
: Entfernt nach erfolgreicher Kompilierung nicht mehr benötigte Abhängigkeiten:- Pakete, die nur für den Build erforderlich sind.
- Wird
--install
nicht genutzt, auch Laufzeit-Abhängigkeiten.
-i
,--install
: Installiert oder aktualisiert das fertig gebaute Paket automatisch.-c
,--clean
: Entfernt temporäre Build-Dateien – hilfreich beim Debugging von fehlerhaften Builds.
Paket automatisch installieren und aufräumen
Dieser Befehl installiert das Paket nach erfolgreichem Build, behält Laufzeit-Abhängigkeiten bei und entfernt nur jene, die für den Bau benötigt wurden:
# makepkg -sri
Abhängigkeiten für spätere Updates behalten
Wenn du das Paket nicht sofort installieren möchtest, aber die installierten Abhängigkeiten für zukünftige Paket-Updates erhalten willst, nutze folgenden Befehl:
# makepkg -s
Nach dem Kompilieren kannst du entweder ein lokales Repository einrichten, oder das Paket direkt mit folgendem Befehl installieren:
# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz
makepkg-Bauprozess beschleunigen
Standardmäßig erstellt makepkg
Paketdateien im Format .tar.xz
– dabei nutzt es lediglich einen einzigen Thread für die xz
-Kompression.
Mehrere Threads auf Mehrkernsystemen aktivieren
Wenn dein System über mehrere CPU-Kerne verfügt, kannst du xz
für die Nutzung mehrerer Threads konfigurieren. Öffne dazu die Datei /etc/makepkg.conf
und suche die folgende Zeile:
COMPRESSXZ=(xz -c -z -)
Um alle virtuellen Kerne zu verwenden, ändere sie wie folgt:
COMPRESSXZ=(xz -c -z - --threads=0)
Möchtest du nur eine bestimmte Anzahl an Threads verwenden, um dein System zu entlasten, kannst du zum Beispiel diese Einstellung nutzen:
COMPRESSXZ=(xz -c -z - --threads=21)
Hinweis: Wenn du mehr Threads angibst, als dein System tatsächlich zur Verfügung hat, kann das die Performance verschlechtern.
Kompression deaktivieren für schnellere Builds
Wenn Speicherplatz für dich keine große Rolle spielt und du Wert auf schnelle Paketgenerierung legst, kannst du die Kompression ganz ausschalten. Öffne dazu in /etc/makepkg.conf
folgende Zeile:
PKGEXT='.pkg.tar.xz'
Und ersetze sie durch:
PKGEXT='.pkg.tar'
PGP-Signaturprüfung überspringen (nicht empfohlen)
Es ist generell empfehlenswert, PGP-Signaturen ordnungsgemäß zu überprüfen und zu importieren.
Möchtest du dennoch makepkg
direkt verwenden und die Signaturprüfung überspringen, kannst du dies mit dem folgenden Parameter tun:
makepkg --skippgpcheck
Fazit: Pakete effizient mit makepkg erstellen
Mit makepkg
behältst du beim Kompilieren unter Arch Linux die volle Kontrolle. Durch das Installieren von base-devel, die Aktivierung der Mehrkernkompression sowie gezieltes Abhängigkeitsmanagement lässt sich sowohl die Systemsauberkeit als auch die Performance verbessern.
Auch wenn das Überspringen von PGP-Prüfungen technisch möglich ist, sollte man aus Sicherheitsgründen möglichst auf empfohlene Prüfmechanismen setzen. Richtig konfiguriert ist makepkg
ein starkes Werkzeug zur Erstellung eigener Pakete aus dem AUR oder anderen Quellen.