rpm dummy
rpm dummy
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
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
Re: rpm dummy
Für diesen Zweck gibt es checkinstall.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 ?
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
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
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
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.
rpm
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
bye brum
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
bye brum
rpm
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
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
bye brum
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
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
bye brum
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
@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.
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.
teufelskreis
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 und Abbruch ...
bye brum
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 und Abbruch ...
bye brum
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
rpm
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
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
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
Re: rpm
Hallo,
wie im Lehrbuchbrum 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.
->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: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.
->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.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