Hallo, Am Wed, 14 Apr 2004, Sascha Blum schrieb:
mich würde einmal interessieren, wie man am einfachsten als absoluter RPM-Neuling sozusagen ein devel-RPM bauen kann?
%package devel Details? Das "Maximum RPM Book"[1] ist die einzig mir bekannte taugliche Dokumentation. Du solltest aber dennoch noch ein wenig auf http://www.rpm.org rumschauen.
Wie man von Programm xy aus einem Source-Paket da ein RPM mit checkinstall baut, habe ich schon mehrfach hinbekommen. Nun würde mich aber das Thema etwas mehr interessieren, also wie man ein devel-RPM zu dem jeweiligen Programm da bauen kann? Gibts dafür auch sowas wie checkinstall?
AFAIK nein. Und von checkinstall kann _ich_ eigentlich nur abraten -- genaueres findest du im Archiv der Liste.
Vielleicht kann mir ja jemand hier einen guten Tipp für Anfänger geben. Oder hat vielleicht irgendwo ein deutschsprachiges Tutorial oder was ähnliches?
Auf Deutsch ist mir nichts gutes bekannt, aber vielleicht findest du ja das RPM-HOWTO (o.ae.) auch auf deutsch, das koennte ein paar Hinweise schon geben -- aber wie gesagt: _jede_ andere Doku ausser o.g. RPM-Book hat sich fuer mich als untauglich herausgestellt. Und auch das RPM-Book ist (leider) nicht vollstaendig.
Hatte hier oder so schon mal was gelesen wie schau dir am besten mal von Programm xy das .spec-File an, und pass das irgendwie an. Doch wo findet man dieses .spec-File da?
In jedem .src.rpm. Greif dir das .src.rpm eines _kleinen_ RPMs, am besten eins von "http://packman.links2linux.de/"[2]. Bei mir findest du auch ein bisserl was in verschiedenen Schwierig- keitsstufen, die du dann anhand des RPM-Books nachvollziehen kannst[3]... Meine .src.rpms sind allerdings auf meine SuSE 6.2(!) zugeschnitten und lassen sich eventuell nicht ohne Anpassungen auf SuSE-Versionen >= 7.x kompilieren und sind generell eher "speziell".
Und so ein spec-File schön und Recht, doch wie bekommt man z.B. da sämtliche Dateien und Verzeichnise am einfachsten und schnellsten in das spec-File da, also gibts da nen Tool, das die Verzeichnise sozusagen sozusagen einscannt und das dann entsprechend im spec-File einfügt oder muss man die alle von Hand da einzeln reinschreiben? Weil bei 50 Dateien oder so wäre das schon heftig ...
Nein, muss man nicht, da man mit wildcards arbeiten kann (IHMO sollte, soweit angebracht(!)), zur Not kann man die Datei-Listen aber per script erstellen[4]. HTH, -dnh [1] http://www.rpm.org/local/maximum-rpm.tar.gz [2] denn die Specs sind meist gut, und nicht so spezifisch / speziell / kompliziert wie die von SUSE, fuer den Einstieg also auf jeden Fall besser. [3] Verschiedenes (nur usleep und birthday sind verlinkt, daher setz am besten direkt 'wget' per Copy&Paste auf folgende URLs an): Ein simples rpm+spec fuer ein simples Programm [13k]: http://www.dhaller.de/linux/usleep-0.0.1-1.src.rpm Noch ein "einfaches" rpm+spec [37k]: http://www.dhaller.de/dl/birthday/birthday-1.5-0_dh_0.src.rpm Ein noch "relativ einfaches" rpm+spec fuer eine lib samt -devel [153k]: http://www.dhaller.de/linux/libPropList-0.10.1-0_dh_0.src.rpm Ein "normales" rpm+spec fuer eine lib samt -devel [257k]: http://www.dhaller.de/linux/Hermes-1.3.2-0_dh_0.src.rpm Ein recht komplexes rpm+spec fuer WindowMaker [2.4M]: http://www.dhaller.de/linux/WindowMaker-0.80.0-1_dh_1.src.rpm Von WindowMaker und Hermes hab ich die .spec auch einzeln: http://www.dhaller.de/linux/Hermes-0.10.spec http://www.dhaller.de/linux/WindowMaker.spec So allein taugen die .spec aber nur zum anschauen, nicht aber zum Nachvollziehen, da eben z.B. die patches und der Rest fehlen... Achso: die Webseite zieht demnaechst um und wird dabei neu gebaut. Das Multikernel-HOWTO (/linux/multikernel.html) wird aber die gleiche URL bekommen ;) [4] Das folgende hab ich IIRC mehr oder weniger aus nem Packman .spec uebernommen, das script _MUSS_ aus einem .spec aufgerufen werden (oder RPM_BUILD_ROOT muss per Hand gesetzt sein): ==== rpm_genfilelist.sh ==== #! /bin/bash : ${RPM_BUILD_ROOT:=$1} find "${RPM_BUILD_ROOT}" -not -type d -printf "/%P\n" | sort \ | sed \ -e 's¡^.*/\(etc\|app-defaults\|init.d\|rc.d\)/.*¡%config &¡' \ -e 's¡^.*/.*\(rc\|\.cf\)$¡%config &¡' \ -e 's¡^.*/.*/\(man\|info\|doc\)/.*¡%doc &¡' \ -e 's¡^.*/.*\.sh$¡%attr(755,-,-\) &¡' \ -e 's¡%doc %config¡%doc¡' \ -e 's¡%doc \(%doc \)*¡%doc ¡' \ -e 's¡%config \(%config \)*¡%config ¡' ==== So ein script ist aber nur eine Notloesung fuer Arme und auf die Schnelle... Wie ein "gescheites" script aussieht fuehrt Manfred mit seinen generierten xine-spec-Dateien vor... Die scripte dafuer sind recht komplex... -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.