Am 20 Dec 2005 um 15:46 hat Manfred Tremmel geschrieben:
Am Dienstag 20 Dezember 2005 11:57 schrieb lothar.behrens@lollisoft.de:
So wie ich das bis jetzt verstanden habe und es wohl in der Doku zu verstehen ist, sind die %files Angaben nur dazu da, ob tatsächlich Dateien installiert wurden. Diese können dann mit Hilfe der %files Angaben wieder 'deinstalliert' werden.
Nö, die %files Angaben enthalten die Verzeichnisse/Dateien, die in dem RPM landen sollen.
Hmm, mein tgz File eben. Das soll durch die Angaben des Users irgendwo entpackt werden. Rpmbuild frisst es auch und stellt dessen Verzeichnis in /usr/src/packages/BUILD rein. (rpmbuild -ba <specfile>)
Die Beispiele, die ich gesehen habe, wenden in %install 'make install' an. D.h. rpm weiß da wirklich nicht immer, was installiert wird. Also wenn ich in meinem makefile ein 'install' target einbaue, welches meinen Quellbaum (CPP im tgz File) kopiert, könnte es gehen.
Dashalb sollte man "make install" nie so verwenden, denn beim RPM-Bau sollte nie ins reale System installiert werden, sondern in ein temporäres Verzeichnis. Am besten mit den vorgegebenen Makros arbeiten: %makeinstall
Das mit make install oder %makeinstall lasse ich besser noch.
Weiter wird nur installiert, wenn in %files Einträge vorhanden sind. Oder ? D.h. es wird nur dann der %install Zweig ausgeführt ?
Soweit ich weiß wird %install unabhängig davon ausgeführt.
Mein Test mit
%files ~/develop/Projects
geht nicht, denn rpm meckert rum mit Pfaden, die nicht mit / beginnen :-(
Was willst Du denn überhaupt mit dem Home-Verzeichnis? Im %files Bereich werden die Verzeichnisse/Dateien absolut angegeben, wenn Du was im Home-Verzeichnis haben willst, nimm /home/lothar/develop/Projects (falls lothar Dein Username ist).
Ich bin nicht gezwungen, die Quellen (CPP Verzeichnis im tgz), dort abzulegen. Es muss dann nur eine Umgebungsvariable angepasst werden. Ich verwende nun mal mein Home Verzeichnis um darin an den Quellen zu arbeiten.
Bin ich gezwungen, mit rpm meine Quellen in das /usr/src/<package> Verzeichnis zu legen. Oder viel mehr, sollte ich das so tun (Linux Filesystem Standard) ?
Du solltest Die Sourcen immer in einen Tarball packen, den nach /usr/src/packages/SOURCES legen und den als Basis nehmen, niemals
So habe ich das auch gemacht, nachdem rpmbuild den tarball nicht gefunden hat.
ein bereits existierendes Entwicklerverhzeichnis, das ist nicht reproduzierbar.
Ich mache ein CVS export, um das dann in ein tarball zu packen. Dies wird dann in /usr/src/packages/SOURCES kopiert. Das nimmt rpmbuild auch und es ist dannach im rpm File. Nur die Installation geht nicht - es passiert nichts.
Ich hoffe, das ist jetzt nicht zu viel :-)
Gibt es eine bessere, oder kürzere Doku für Einsteiger als http://www.rpm.org/max-rpm ?
Hab nie ne Doku gelesen, schau Dir doch einfach mal ein paar SPEC-Files aus SOURCE-RPMs einfacher Pakete an.
Habe ein Tool gefunden (rust.sourceforge.net), das rpm Dateien erstellen können soll. Dies enthält ein spec File, das einfach ist. Werde das mal als Grundlage verwenden. Ich verstehe nur nicht, warum ich im %files Zweig die Dateien nochmal angeben muss. Die sind ja im tgz File und das findet rpmbuild ja schon. Danke, Lothar
-- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
-- Lothar Behrens | Rapid Prototyping ... Rosmarinstr 3 | 40235 Düsseldorf | www.lollisoft.de