Hallo Liste, Ich bin gerade dabei mir ein SPEC-File aus den SuSE-Sourcen (für die 9.1) etwas zurechtzubiegen und habe dazu eine Frage. Beispiel: ========= Source1: rcY Source2: sysconfig.Y Source3: DIRECTORY [snipp] install -m 644 %{S:2} %{buildroot}/var/adm/Y.conf install -d -m 755 %{buildroot}/etc/init.d install -m 755 %{S:1} %{buildroot}/etc/init.d/Y install -d -m 755 %{S:3} %{buildroot}/etc/Y Ich habe Source3 im Specfile hinzugefügt, das ist ein Ordner mit einigen configs für das Programm. Diese sollen später bei der installation direkt mit in den Ordner kopiert werden. Nachdem ich jetzt mehrere rpm-HowTo's und 'man install' hinter mir habe kann ich aber nicht sagen, dass ich viel schlauer bin als vorher... Soweit wie ich das jetzt verstanden habe, würde der Ordner Source3 bei der oben angegebenen Schreibweise bei der installation in den Ordner /etc/Y kopiert werden, richtig? Werden dabei schon vorhandene configs überschrieben (das ist zumindest der Plan)? Ich hoffe, ihr könnt mir weiterhelfen... Gruss Mario
Am Sonntag, 13. Juni 2004 11:19 schrieb Mario van der Linde:
Beispiel: ========= Source1: rcY Source2: sysconfig.Y Source3: DIRECTORY [snipp] install -m 644 %{S:2} %{buildroot}/var/adm/Y.conf install -d -m 755 %{buildroot}/etc/init.d install -m 755 %{S:1} %{buildroot}/etc/init.d/Y install -d -m 755 %{S:3} %{buildroot}/etc/Y
Ich habe Source3 im Specfile hinzugefügt, das ist ein Ordner mit einigen configs für das Programm. Diese sollen später bei der installation direkt mit in den Ordner kopiert werden.
Du kannst kein Verzeichnis angeben, tar es bzip es und häng den Tarball rein. Und entpack das Ding dann hier, entweder im Build Verzeichnis, dann kannst Du mit install den Inhalt verteilen, oder direkt ins Zielverzeichnis.
Nachdem ich jetzt mehrere rpm-HowTo's und 'man install' hinter mir habe kann ich aber nicht sagen, dass ich viel schlauer bin als vorher... Soweit wie ich das jetzt verstanden habe, würde der Ordner Source3 bei der oben angegebenen Schreibweise bei der installation in den Ordner /etc/Y kopiert werden, richtig?
Nö, siehe oben, nebenbei bemerkt sollte %{buildroot} nie auf das Basisverzeichnis verweisen, sondern z.B. ein Paketverzeichnis unter /var/tmp.
Werden dabei schon vorhandene configs überschrieben (das ist zumindest der Plan)?
Nein, ansonsten ist was faul, ein %install (das ja nicht beim installieren des RPMs, sondern beim bauen ausgeführt wird), darf nichts überschrieben werden, sonst ist das Paket Schei*e. Entscheidend ist zum Schluss der %file Bereich, er enthält die Dateien und Verzeichnisse, die ins RPM aufgenommen werden sollen, diese sind es dann auch, die installiert werden. Wenn Du dort /etc/Y/* aufnimmst, sind die dabei, wenn es sich um Konfigurationdateien handelt, sollten die aber nicht einfach überschrieben werden, sondern mit %config oder %config(noreplace) gekennzeichnet werden (ersteres wird die Konfigurationsfiles überschreiben, aber eine Sicherheitskopie anlegen -> .rpmsave, die zweite Variante behält die bestehende Datei und legt die neue als .rpmnew an). -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
participants (2)
-
Manfred Tremmel
-
Mario van der Linde