RPM-Bau für Anfänger

Seite: 17/27
(5396 Worte insgesamt im Text)
(17078 mal aufgerufen)  Druckerfreundliche Ansicht

Paketbau vorbereiten: prep

Das Macro %prep bereitet die Umgebung für den eigentlichen Paketbau vor. Hierzu gehört das Anlegen von temporären Verzeichnissen das Auspacken der Tarballs und das Patchen von Dateien.

%setup packt die unter SOURCE angegebenen Dateien aus. Egal, wie sie komprimiert sind (ein Macro halt... ...genau dieses Macro ist allerdings im rpm-Binary definiert icon_wink .

%setup enhält - genauso wie viele andere vordefinierten Macros verschiedene Optionen parat. Z.B. die Option -q lässt %setup die Datei leise auspacken.

%Patch patcht eine Originaldatei mit der hier angegebenen Datei. Wichtigste Option ist hier die Option -p, welche dafür sorgt, dass eine bestimmte Anzahl von im Patchfile angegebenen Pfadelementen weggelassen wird. Also z.B. %patch -p1 sorgt dafür, dass der Patch nicht auf Dateien unter /usr/local/bin angewendet wird, sondern auf Dateien unter local/bin. Insbesondere in der BUILD-Umgebung macht das viel Sinn...

diff und patch
diff -u <originaldatei> <neudatei> > patchfile</neudatei></originaldatei> erzeugt eine neue Datei namens "patchfile", welche die Änderungen zwischen den Dateien <originaldatei> und <neudatei> enhält. Bitte beachten (besonders bei Kernelentwicklern icon_smile das Patches normalerweise mit patch -p1 eingespielt werden sollten (d.h. der Patch wird ausserhalb des Ursprungsverzeichnisses erstellt).
Eine Patchdatei sollte auch einen Header enthalten, welcher in kurzen Worten den Patch erläutert damit spätere Entwickler den Patch leicht nachvollziehen können.
patch -p1 < patchfile Patcht dann die im patchfile angegebene <originaldatei> mit den Änderungen in <neudatei>.</neudatei></originaldatei></neudatei></originaldatei>



Kommentare

Einen Kommentar hinzufügen



 Suchen:


 Umfrage

(Nur für angemeldete Benutzer)

Was wird hier am meisten vermisst?

[ Ergebnis | Umfragen ]

Stimmen: 621
Kommentare: 0

 Zitate

CTRL-ALT-DEL. Auch STRG-ALT-ENTF genannt

-- anonymous