Home / LinuxUser / 2003 / 07 / RPM-Pakete selbst bauen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(226 Punkte bei 13 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Re: War doch klar...
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Private Paketzentrale

RPM-Pakete selbst bauen

01.07.2003 Die meiste Software für Linux liegt im Quellcode vor und muss kompiliert werden. Dies geht schnell von der Hand, doch spätestens wenn man eine Anwendung wieder loswerden will, fangen die Probleme an.

Was sammelt sich nicht im Laufe der Zeit an selbstkompilierter Software auf dem eigenen System an? Hat man bei Binärdateien zumindest eine grobe Vorstellung, wo sie herumliegen, ist man spätestens im Unterverzeichnis /usr/local/lib heillos verloren. Händische Löschaktionen und das Rätselraten nach dem Ursprung einer Datei lassen sich vermeiden, wenn das Paketmanagement der Distribution auch selbstkompilierte Software verwaltet.

Das am weitesten verbreitete Programm dafür ist rpm, der Red Hat Package Manager. Er schreibt nicht nur alle Informationen über die installierten Pakete in seine Datenbank, sondern kümmert sich darüber hinaus auch um die Abhängigkeiten, so dass eine rückstandslose Entfernung möglich wird. Das ist ein unschätzbarer Vorteil, denn selbst wenn Sie eine Bibliothek installiert haben, damit Programm A läuft, können Sie diese nicht bedenkenlos zusammen mit Programm A entfernen. Möglicherweise wurde nachträglich noch weitere Software eingespielt, die ebenfalls auf die fragliche Bibliothek angewiesen ist. RPM wacht darüber und warnt Sie in einem solchen Fall.

Handarbeit bevorzugt

Damit RPM auch selbstkompilierte Software verwaltet, muss aus dem Quellcode erst einmal ein Paket werden. Mit checkinstall [1,2] existiert ein Programm, das die Installation überwacht und beim Aufruf von make install aus den kopierten Dateien ein RPM-Paket baut.

Wie alle automatisierten Lösungen hat auch diese den Nachteil, dass sie nicht alle Möglichkeiten des RPM-Befehls bietet. Sie kann eine Software nicht in mehrere Einzelpakete aufteilen, und bei manchen Programmen verweigert checkinstall ganz die Mitarbeit.

Das gravierendste Manko: Sie erstellt die Dateiliste für das Paket erst während der Installation, man hat also keinerlei Kontrolle darüber, ob nicht Dateien überschrieben werden. Das soll jedoch in einer der nächsten Versionen durch Unterstützung der RPM-BUILDROOT-Option ausgemerzt werden. Damit lassen sich Pakete in einer Art Sandbox bauen, etwa im Verzeichnis /tmp. Das Programm betrachtet /tmp während der Installation als Wurzelverzeichnis, so dass keine System-Dateien überschrieben werden.

Wer keine halben Sachen mag, verlässt sich daher nicht auf Zusatz-Tools, sondern baut seine Pakete selbst. Wie das geht, darüber schweigt sich die RPM-Dokumentation leider weitgehend aus und "Maximum RPM" [3], die Referenz für Paketbauer und alle die es werden wollen, eignet sich wegen des Umfangs von mehreren hundert Seiten nicht für einen schnellen Einstieg.

Um Sie nicht mit trockener Theorie zu Tode zu langweilen, beschreiben wir, wie man ein Paket des Programms xpuyopuyo [4] baut. Das ist ein netzwerkfähiges, Tetris-ähnliches Spiel mit netter Grafik, lustigem Sound und hohem Suchtfaktor(Abbildung 1), sollte also genug Anreiz bieten, die Mühe des Paketbauens auf sich zu nehmen.

Abbildung 1: Das Programm Xpuyopuyo dient als Beispiel zum Erstellen eines RPM-Pakets.

Vorbereitungen

Wer denkt, er könne sofort loslegen, irrt. Die meisten Distributoren installieren nur die Programme, die nötig sind, um RPMs zu installieren, nicht aber jene, die man zur Erstellung benötigt. In diesem Fall muss zunächst das Paket rpm-build eingespielt werden. Die Packtheke, also das Arbeitsverzeichnis des Paketbauers, befindet sich unterhalb des Verzeichnisses /usr/src, und auch hier geht jeder Distributor eigene Wege. Unter SuSE nennt es sich packages, bei Mandrake RPM, und der amerikanische Marktführer hat den entsprechenden Ordner ganz egozentrisch redhat genannt.

In den dort liegenden fünf Unterverzeichnissen SOURCES, SPECS, BUILD, RPMS und SRPMS geht der Paketbau vonstatten. RPMS und SRPMS nehmen später die erzeugten Binär- und Source-Pakete auf und im Verzeichnis BUILD wird die Software kompiliert. Da Sie beim Erstellen von RPMs die entsprechenden Befehle nicht selbst eingeben, sondern RPM sie aus einer Steuerdatei, dem so genannten Specfile, liest, gibt es in diesem Ordner für Sie nichts zu tun.

Der Paketbauer bewegt sich in SOURCES und SPECS. Unter SOURCES muss sich das tar.gz-Archiv mit der zu verpackenden Software befinden. Liegt Ihr Quellcode in einer anderen Form vor, müssen Sie ihn vorher in ein tar.gz-Archiv umwandeln.

Werden Sie zunächst durch den Befehl su und nachfolgende Eingabe des root- Passwortes zum Administrator. Sie brauchen während des gesamten Build-Prozesses Superuser-Rechte. Man kann auch normalen Benutzern das Paketebauen erlauben, was jedoch kompliziert einzurichten ist. Laden Sie die Datei http://chaos2.org/xpuyopuyo/xpuyopuyo-0.9.7.tar.gz herunter und kopieren Sie sie nach SOURCES. Wechseln Sie danach in das Verzeichnis SPECS. Dort erwartet RPM die Steuerdatei. Wie Sie diese nennen ist egal, es hat sich jedoch eingebürgert, einen Namen nach dem Schema Programmname.spec zu wählen. Öffnen Sie dann als root einen Editor und beginnen Sie mit der Erstellung der Textdatei xpuyopuyo.spec.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1387 Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...
OpenSuse 12.1-Service Kit 01/12
Christoph-J. Walter, 28.01.2012 08:52, 2 Antworten
Hallo Gemeinde, ich habe 12.1 neu installiert. Alles in Ordnung! Nun möchte ich das Service Kit (...
Ubuntu 11.10 konfigurieren
Michael Hinz, 27.01.2012 17:52, 1 Antworten
Ubuntu läuft bei mir. Allerdings nur, wenn die Daten-CD eingelegt ist. Unabhängig von Bios-Einste...