rpm dummy

Software besorgen und anwenden
Post Reply
Message
Author
brum

rpm dummy

#1 Post by brum »

Hallo,

ich möchte ein rpm-Paket durch eine Software ersetzen, welche ich nur als Source zur Verfügung habe. Und ich möchte dann nicht durch das -aketmanagment auf fehlende Abhängigkeit hingrwiesen zu werden. Kann man bei den RPM-Verfahren auch so was wie einen Platzhalter, ein Dummy-Paket bauen ?

bye brum

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

Re: rpm dummy

#2 Post by Janka »

brum wrote:ich möchte ein rpm-Paket durch eine Software ersetzen, welche ich nur als Source zur Verfügung habe. Und ich möchte dann nicht durch das -aketmanagment auf fehlende Abhängigkeit hingrwiesen zu werden. Kann man bei den RPM-Verfahren auch so was wie einen Platzhalter, ein Dummy-Paket bauen ?
Für diesen Zweck gibt es checkinstall.

Statt "make install" als letztem Schritt einer Installation aus dem Quellen gibt man "checkinstall" ein. Dann wird ein Paket (auf rpm-Systemen normalerweise rpm) erzeugt, das man ganz normal mit der Paketmanagementsoftware des Systems bearbeiten kann.

Janka

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#3 Post by komsomolze »

hallo,

Im Fall von SuSE kannst Du als Vorlage das *.src.rpm der Software verwenden:
Hierin befindet sich ein *.spec-File. das das Bauen des *.rpm aus den enthaltenen Quellen steuert. Passe das speq-File an und ersetze die Quellen durch deine eigenen. Nach dem Bauen deines rpm-Paketes ('rpm -bb SPEC-File') kannst das erhaltene Paket installieren

http://www.linux-magazin.de/Artikel/aus ... /rpm1.html
http://www.linux-magazin.de/Artikel/aus ... M/rpm.html
Last edited by komsomolze on 19. Mar 2006 21:09, edited 1 time in total.

brum

rpm

#4 Post by brum »

Hallo

und danke für die Tips, aber Beides geht ncht immer:

checkinstall funktioniert nicht mit Postgresql-Source und in dem Fall, wo man keinen Dreisatz ausführt, wie Kerneltreiber installieren.

Mit Source habe ich die wirklich die Source.tgz und nicht die source.src.rpm gemeint :wink:

bye brum

brum

rpm

#5 Post by brum »

Hallo

und danke für die Tips, aber Beides geht ncht immer:

checkinstall funktioniert nicht mit Postgresql-Source und in dem Fall, wo man keinen Dreisatz ausführt, wie Kerneltreiber installieren.

Mit Source habe ich die wirklich die Source.tgz und nicht die source.src.rpm gemeint :wink:

Bei Debian gibts dafür die Methode, Dummipakete zu bauen, die dem Paketmanagment das Vorhandensein des Paketes vorgaukelt.
Sowas suche ich analog für rpm.
Will ich z.B. den Madwifi-Treiber durch einen Madwifi-NG-Treiber ersetzen, welchen ich nicht als rpm habe, so meckert die Hardwarerkennung und meint: Bitte CD einlegen :roll:

bye brum

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#6 Post by komsomolze »

@brum:
Ich habe Dich auch so verstanden, dass Du die source.tgz bei Dir vorliegen hast.

In den source.rpm sind die normalen Quellen der Software enthalten zuzueglich der von SuSE darauf angewendeten Patches.
zur Funktion:
Die source.rpm von SuSE entpacken sich in eine Struktur nach /usr/src/packages oder /usr/src/rpm. Beim Anwenden von
'rpm -v -bb SPEC-Datei' (Bitte bei den Links und in der manpage nachsehen)
wird die source entpackt, die Patches angewendet, kompiliert und ein rpm erstellt.
Hierbei sollst Du jetzt ansetzen: Die Quellen durch Deine ersetzen und die spec-Datei anpassen.

Der Grund fuer das Ganze ist, dass Dir die enthaltene spec-Datei als Vorlage dienen soll, denn eine solche 'from scratch' zu Erstellen ist kein Zuckerschlecken, das Anpassen sollte allerdings easy sein.
Wenn Du dir die Datei mal ansiehst wirst Du meist das bekannte "configure, make, make install" erkennen, angereichert mit einer Patchliste und Aufraeum- und SteuerSequenzen.
Fuer Dich ist dann noetig, die Patchliste zu loeschen und den Namen des Quellpaketes zu aendern.
Ein bisschen damit zu experimentieren hat noch kein Linux zum Absturz gebracht.

brum

;-)

#7 Post by brum »

Danke,
wieder was dazugekernt, werde es mal probieren ;-)

bye brum

brum

teufelskreis

#8 Post by brum »

Hallo,

jetzt brauch ich noch eine geniale Idee:

Habe das src.rpm ausgepackt

$ rpm2cpio postgresql-8.1.3-1mdk.srcp.rpm |cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time

die Patches rausgeschmissen und aus dem SPEC auskommentiert, die source.bz2 und md5 nach /usr/src/RPM/SOURCES/ kopiert.

Jetzt habe ich das Problem beim Ausführen von
# rpm -bb postgres.spec
das da kurz vor Ende der Aktion ein initdb ausgeführt wird, was root nicht darf, das darf nur user postgres :cry: und Abbruch ...

bye brum

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#9 Post by komsomolze »

hallo,

Lauft die Kompilierung denn mit dem eigentlichen Inhalt des src.rpm durch?

Obwohl sich das eher nach einer Eigenheit der postgre-Quellen anhoert, und dann solltest Du vielleicht jetzt einen postgre/mandrake-Thread starten.
Es handelt sich ja auch um ein umfangreiches und komplexes Paket.

brum

rpm

#10 Post by brum »

Hallo,

habe dann als user das nochmal durchgeführt und es lief durch...
Also im Home die Verzeichnisse wie im /usr/src/RPM nachgebaut und die und Pfade gesetzt.
Es lief dann auch mit der Originalsource.tar.gz durch. Allerding musste ich die Distrie-Patche wieder reinnehmen, die waren in den spec-File irgendwie definiert.

Brachte mir aber unterm Strich nixxxx, ich wollte eigentlich nur den Befehlsvorrat wie im pro-linux-OpenLogos-Beitrag (pg_lscluster, ...) haben. Auch als ich dass dann mit dem RedHat-spec ausführte hatte ich die im PostgreSQL Befehle nicht :(

bye brum

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

Re: rpm

#11 Post by komsomolze »

Hallo,
brum wrote:habe dann als user das nochmal durchgeführt und es lief durch...
Also im Home die Verzeichnisse wie im /usr/src/RPM nachgebaut und die und Pfade gesetzt.
wie im Lehrbuch ;-)
brum wrote:Es lief dann auch mit der Originalsource.tar.gz durch. Allerding musste ich die Distrie-Patche wieder reinnehmen, die waren in den spec-File irgendwie definiert.
->Schwierig, zum einen sind die Patches ja Sicherheitspatches, zum anderen wird damit die Originalquelle an die Distribution angepasst und sind zudem noch auf genau diese Quellen zugeschnitten. Dass sie mit einer anderen Quellen-Version voellig fehlerfrei funktionieren ist eher unwahrscheinlich. Du muesstest Dir die Patche dann vornehmen und sie auf Deine Quellen-Version anpassen.
brum wrote:Brachte mir aber unterm Strich nixxxx, ich wollte eigentlich nur den Befehlsvorrat wie im pro-linux-OpenLogos-Beitrag (pg_lscluster, ...) haben. Auch als ich dass dann mit dem RedHat-spec ausführte hatte ich die im PostgreSQL Befehle nicht :(
->Neues Problem, geht weit ueber meine Horizont. Wenn Du allerdings Deine Quellen angepasst und kompiliert bekommst, kannst Du halt mit dem SPEC- und 'rpm -bb'-Mechanismus Dein RPM erzeugen. :wink:

Post Reply