buildrpm - Ein Wrapper für rpmbuild
buildrpm ist ein Shellscript, dass im Grunde nichts weiteres macht, als rpmbuild auf ein SPEC-File loszulassen. Es prüft vorher aber, ob alle benötigten Abhängigkeiten (eingetragen als “BuildRequires” im Spec) installiert sind und fragt nötigenfalls nach dem root-Passwort, um fehlende über yum nachzuinstallieren. Ausserdem wird die benötigte Zeit zum bauen des RPMs berechnet (ohne jedesmal ein time voranzustellen).
Die Features als Liste:
- automatischer Download des Sourcefiles
- Installation fehlender Abhängigkeiten über yum (bei Abfrage des root-Passwortes)
- Möglichkeit, die Installation der Abhängigkeiten zu automatisieren (über sudo)
- Überprüfung, ob alle Sourcen und Patches im richtigen Verzeichnis liegen
- “grafische Ausgabe” der Befehle möglich
- Darstellung der benötigten Bauzeit
- Überprüfung des RPMs mit rpmlint
- Ausführung eines Befehls, wenn das Bauen erfolgreich war (z.B. ein beepen des Speakers)
- Mehrfachauswahl an SPEC-Files, die dann nacheinander gebaut werden (Wildcard * auch möglich)
- Funktioniert auch unter CentOS
Wo es noch hackt:
- bei der Erkennung der angegebenen Abhängigkeiten
- Wenn “Name” und “Version” nicht direkt angegeben sind, bricht es ab (also bei %define name ..)
- Fehlermeldungen manchmal unvollständig oder nicht vorhanden
- bei meinem Englisch
Installation:
- Download und entpacken des Tarballs
- Nach /usr/local/bin kopieren und gegebenfalls ausführbar machen
- Aufruf von “buildrpm –check” für das Erstellen der Configdatei ~/.buildrpm.conf
- Gegebenfalls Anpassung der Variable RPMBUILDTREE in der Configdatei (wenn das Topdir nicht ~/rpmbuild ist)
- buildrpm foo.spec
Das ganze ist als kleine Übung zum Lernen des Bash-Scriptings gedacht. Fehler können dabei durchaus vorkommen.
Aktuelle Version: 0.3.2