Hallo Leute, mich würde einmal interessieren, wie man am einfachsten als absoluter RPM-Neuling sozusagen ein devel-RPM bauen kann? 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? Vielleicht kann mir ja jemand hier einen guten Tipp für Anfänger geben. Oder hat vielleicht irgendwo ein deutschsprachiges Tutorial oder was ähnliches? 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? 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 ... Besten Dank vorab. MfG. Sascha
Sascha Blum
mich würde einmal interessieren, wie man am einfachsten als absoluter RPM-Neuling sozusagen ein devel-RPM bauen kann?
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?
Wenn Du etwas mit checkinstall, also für gewöhnlich mit 'make install', installierst, dann ist das -devel Paket da sozusagen schon enthalten, denn es wird nicht unterschieden zwischen den zur Ausführung benötigten Dateien und den Header-Files.
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?
Das steht alles im SuSE Administrationshandbuch. Kapitel 6 oder so. Martin
Hallo, Am Mittwoch, 14. April 2004 01:37 schrieb Martin Schmitz:
mich würde einmal interessieren, wie man am einfachsten als absoluter RPM-Neuling sozusagen ein devel-RPM bauen kann?
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?
Wenn Du etwas mit checkinstall, also für gewöhnlich mit 'make install', installierst, dann ist das -devel Paket da sozusagen schon enthalten, denn es wird nicht unterschieden zwischen den zur Ausführung benötigten Dateien und den Header-Files.
hmm komisch ... - bin gerade dabei mir ein LAMP-System aufzusetzen bzw. da Apache usw. selbst zu kompilieren inkl. https:// / mod_ssl und da hat es bei dem ein oder anderen den Anschein, als wären die Header-Files nicht darin gewesen ... - vielleicht hab ich auch was falsch gemacht ...
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?
Das steht alles im SuSE Administrationshandbuch. Kapitel 6 oder so.
aha ... MfG. Sascha
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.
Hi David, hi Sascha, hi Liste, Am Mittwoch, 14. April 2004 03:52 schrieb David Haller:
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.
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.
Auf Deutsch: http://www.tu-chemnitz.de/docs/lindocs/RPM/ @David: Den Link kanntest du schon? Wenn ja, warum untauglich? hth cu Gerald
Hallo Gerald, Am Mittwoch, 14. April 2004 12:04 schrieb Gerald Goebel:
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.
Auf Deutsch: http://www.tu-chemnitz.de/docs/lindocs/RPM/
der Tipp ist auch gut, vielen Dank. Hast du zufällig eine Ahnung, ob man das irgendwie komplett downloaden kann, damit man es auch offline lesen kann? Konnte da auf Anhieb keinen Download-Link finden. Danke vorab. MfG. Sascha
Sascha Blum wrote:
Hallo Gerald,
Am Mittwoch, 14. April 2004 12:04 schrieb Gerald Goebel:
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.
Auf Deutsch: http://www.tu-chemnitz.de/docs/lindocs/RPM/
der Tipp ist auch gut, vielen Dank. Hast du zufällig eine Ahnung, ob man das irgendwie komplett downloaden kann, damit man es auch offline lesen kann? Konnte da auf Anhieb keinen Download-Link finden.
http://www.linux-magazin.de/Artikel/ausgabe/1999/11/RPM/rpm2.html http://www.unix-ag.uni-kl.de/~linux/linuxtag99/rpm_pakete_im_eigenbau.html Was willst Du denn noch? Mach Dich mal selbst auf den Weg! Das alles bekommt mit Google heraus, man muss sich nur bemühen! Grusz Mathias -- CU in www.meeloon.de --
Hallo, Am Wed, 14 Apr 2004, Gerald Goebel schrieb:
Am Mittwoch, 14. April 2004 03:52 schrieb David Haller: [..]
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.
Auf Deutsch: http://www.tu-chemnitz.de/docs/lindocs/RPM/
@David: Den Link kanntest du schon?
Nein. Ich hab -- mangels Interesse, da mir das englische Original reicht -- nie nach einer Uebersetzung gesucht ;)
Wenn ja, warum untauglich?
Alles _ausser_ dem RPM-Book. Achso: das "untauglich" bezieht sich auf "(un)tauglich als Doku fuer .spec-Dateien"... Wie gut die Uebersetzung ist hab ich jetzt noch nicht geschaut, sieht aber ganz ok aus. -dnh -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.
Hallo David, Hallo Leute, Am Mittwoch, 14. April 2004 03:52 schrieb David Haller:
[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...
und wo findet man dieses gescheite Script von Manfred? Auch bei Packman - im xine-Paket oder? Danke nochmals für die vielen Tipps da ... - mal schaun, ob ich das da hinbekomme ... MfG. Sascha
Am Mittwoch, 14. April 2004 12:27 schrieb Sascha Blum:
und wo findet man dieses gescheite Script von Manfred?
Dieses "gescheite" Script dient eigentlich nur zur Vereinfachung von RPM-Bau im großen Stil. Mein xine Buildscript zieht sich täglich den aktuellen CVS einiger xine-Kern-Programme, prüft Versionswechsel, liegt ne neue Version vor, gibts ne Mail an mich und die RPMs werden automatisch gebaut und bei Packman untergestellt (incl. Eintrag im Webinterface usw. mit nem Python-Script von Hendrik Muhs), es generiert die SPEC-Files aus Vorlagen, aktualisiert die Changelog Einträge usw. Es werden auch tägliche CVS-RPM-Pakete generiert, die stehen unter ftp://packman.iu-bremen.de/testing/xine-cvs Ich kann Dir das gerne schicken, aber wenn Du Die SPEC-Files selbst nicht beherrscht, bringt es Dir nichts und wird wohl zu deutlich mehr Verwirrung sorgen, als irgendwelche Probleme lösen.
Auch bei Packman - im xine-Paket oder?
Die SPEC-Files die generiert werden, sind natürlich, in den Source-RPMs bei Packman zu finden, die ganzen Scripte, die auf dem Weg dorthin führen, sind nicht im offiziell zugänglichen Bereich des Packman-FTP-Servers. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Hallo, Am Thu, 15 Apr 2004, Manfred Tremmel schrieb:
Am Mittwoch, 14. April 2004 12:27 schrieb Sascha Blum:
und wo findet man dieses gescheite Script von Manfred?
Dieses "gescheite" Script dient eigentlich nur zur Vereinfachung von RPM-Bau im großen Stil.
Sorry Manfred (wegen des Aufwands). Und sorry Sascha (wegen der Verwirrung). Eigentlich wollte ich damit nur andeuten, dass ein "gescheites" script *wesentlich* komplexer wird als der Schnipsel fuer %files, den ich mir (IIRC) mal von dir Manfred (oder war's nen anderes packman-spec?) gemopst und etwas geaendert habe. Manfred's xine-build(?) ist speziell auf xine/SuSE zugeschnitten und nicht "allgemein" verwendbar -- und IMO auch nur wegen der Spezialisierung auf xine fuer SUSE "gescheit"... Und ist IIRC einige hundert Zeilen gross (ok, das generiert auch noch den Rest des .spec). Aber, IIRC, selbst wenn man nur den Teil anschaut, der die %files-Abschnitte generiert ist der IIRC *wesentlich* komplexer... Ein Versuch eines "allgemeinen" scripts ist "checkinstall". Und wie wenig ich von checkinstall halte, findest du, Sascha, im Archiv[0]. [..]
Ich kann Dir das gerne schicken, aber wenn Du Die SPEC-Files selbst nicht beherrscht, bringt es Dir nichts und wird wohl zu deutlich mehr Verwirrung sorgen, als irgendwelche Probleme lösen.
Full ACK. Sascha: Schau dir erstmal die einfachen .specs an, les das "Maximum RPM Book" (bzw. dessen Uebersetzung, die doch erfreulich gut scheint, bzw. jew. den Abschnitt zu .spec-Dateien) und versuche damit nachzuvollziehen, was in den .spec gemacht wird. Ohne Ausprobieren wird's aber kaum gehen[3]. Und gleich noch ne Warnung: Meine .specs haben natuerlich auch ihre Macken[1], die von Packman sind (fuer ein halbwegs aktuelles SuSE-System) weitgehend mackenfrei[2]. Ansonsten sind die .spec von Gnome2 Basis-Paketen (glib, gtk usw., einfach im tarball schauen) noch erstaunlich gut, bei den "hoeheren" Paketen (ausser gimp, IIRC) degradiert die Qualitaet der .spec aber leider meist... Und spec-Dateien aus anderen Quellen sollte man vor dem verwenden SEHR genau anschauen. Die Qualitaet der S[uU]SE spec-Dateien z.B. variiert sehr, von "vorbildlich" bis "mit ueblen Fehlern" ist alles dabei... Genaueres bzgl. spec-Dateien ist IMO auf suse-programming dann besser aufgehoben. Bitte dort dann einen neuen Thread starten. Konkrete Fragen (zum RPM-Book, das nicht unbedingt "gut" und "verstaendlich" geschrieben ist), kannst du mir auch per PM stellen (am besten bzgl. des englischen Originals). -dnh [0] kurz gesagt: garnichts. Und sogar nur bedingt besser als ein 'make install'. [1] v.a. die durch mein "uralt SuSE 6.2" bedingten, IIRC hab ich aber (bei den neueren) dafuer gesorgt, dass sowas in "%define"s abgehandelt wird -- und teilweise hab ich das sogar im .spec dokumentiert ;) Falls du Fragen zu meinen .spec hast, dann PM. [2] auch wenn ich die auch immer nachbearbeite, aber das meist wg. [1], weniger weil das .spec nicht "sauber" ist. Wenn sich dann mal ein SUSEism findet, dann ist der meist einfach zu beheben. [3] bei Bedarf kann ich dir sogar ein "dummy"-Programm / -Lib mailen, an dem du ueben kannst ;) -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.
participants (6)
-
David Haller
-
Gerald Goebel
-
Manfred Tremmel
-
Martin Schmitz
-
Mathias Uebel
-
Sascha Blum