RPM, SRC.RPM Verständnisfrage
Ich hab da mal 'ne Frage, damit ich mir mein System künftig konsistent halten kann. (ergibt sich für mich indirekt aus dem Thread KDE 3.2.3 unter Suse 8.0 kompilieren. Probleme mit der Glib2). Also, soweit ich mich bislang über diese Liste schlau gelesen und über google schlau gesurft habe, ist es ja optimal, wenn man für ein gewünschtes Programm ein zur Distribution passendes rpm findet und dann installiert. Falls man das (binary?) rpm nicht findet ist ein (zur Distri und VersNr.) passsendes src.rpm des gewünschten Proggis ja auch kein Problem. Für mich persönlich fangen die Probs an, wenn das nicht mehr der Fall ist, sprich es gibt weder ein rpm noch ein src.rpm für z.B. Suse 8.0 Daher jetzt meine allgemeine Fragen: Kann man jetzt auch [ ] beliebige rpm von Suse (andere Versionsnummer) [ ] beliebige src.rpm von Suse (andere Versionsnummer) [ ] beliebige src.rpm andere Distri [ ] beliebige src.rpm andere Distri mal versuchen (in der Hoffnung dass es klappt) oder sorgen die pre und postinstall Dinge der rpms dafür, dass man letztlich genauso weit kommt wie mit ./configure, make, make install (bzw. ersatzweise) checkinstall? Ganz konkret interessiert mich die Beanwortung der allgemeinen Frage natürlich insbesondere für Suse 8.0 (eben weil ich die verwende) Wie geht ihr sonst vor, wenn ihr unbedingt ein Proggi für Eure alte Distri haben wollt? Gibt es eine Liste (ein Howto?) mit den Besonderheiten von Suse? (z.B. dass sich das Suse pkg-config in /usr/bin befindet, wenn man es mit dem Dreisatz installiert aber in /usr/local/bin? das war letztlich (mit) mein Problem in dem o.g. Thread) Fragen über Fragen. Ich hoffe, dass man mir ein wenig Erleuchtung schenken kann. MfG Frank
Hallo, Am Tue, 10 Aug 2004, Frank Bertling schrieb:
Ich hab da mal 'ne Frage, damit ich mir mein System künftig konsistent halten kann. (ergibt sich für mich indirekt aus dem Thread KDE 3.2.3 unter Suse 8.0 kompilieren. Probleme mit der Glib2).
Also, soweit ich mich bislang über diese Liste schlau gelesen und über google schlau gesurft habe, ist es ja optimal, wenn man für ein gewünschtes Programm ein zur Distribution passendes rpm findet und dann installiert.
Falls man das (binary?) rpm nicht findet ist ein (zur Distri und VersNr.) passsendes src.rpm des gewünschten Proggis ja auch kein Problem.
Für mich persönlich fangen die Probs an, wenn das nicht mehr der Fall ist, sprich es gibt weder ein rpm noch ein src.rpm für z.B. Suse 8.0
Daher jetzt meine allgemeine Fragen: Kann man jetzt auch [ ] beliebige rpm von Suse (andere Versionsnummer)
Nein. Nur wenn kompatibel. Wobei "kompatibel" primaer gleiche glibc-minor-version (2.1.x vs. 2.2.x vs. 2.3.x), und sekundaer gleiche kernel-minor-version (2.2.x vs. 2.4.x vs. 2.6.x) bedeutet. Bsp: SuSE 6.4 auf 6.2: ok SuSE 7.{0,1} auf 6.2: schwierig [oder gab's die glibc-2.2 schon bei 7.1? AFAIK muss man da z.B. schon --relocate und --badreloc bemuehen. SuSE >=7.2 auf 6.2: Nein. (ohne die glibc zu aktualisieren, und dann ist es einfacher, ne neuere Distri zu installieren). Generell muss man also wissen, was sich zwischen zwei SUSE-Versionen getan hat, um das beurteilen zu koennen.
[ ] beliebige src.rpm von Suse (andere Versionsnummer) [ ] beliebige src.rpm andere Distri [ ] beliebige src.rpm andere Distri
Nein. Ohne Anpassungen am .spec geht i.d.R. nix. Und ob die Kompilation klappt haengt von den Voraussetzungen ab. Besonders fuer das KDE oder Gnome Zeug musst du einen Berg an Paketen selber neu kompilieren und installieren (in der richtigen Reihenfolge).
mal versuchen (in der Hoffnung dass es klappt) oder sorgen die pre und postinstall Dinge der rpms dafür, dass man letztlich genauso weit kommt wie mit ./configure, make, make install (bzw. ersatzweise) checkinstall?
Nein. Denn die verwenden dann z.B. andere Dateien usw. (Stichwort /etc/sysconfig vs. /etc/rc.config[.d]).
Ganz konkret interessiert mich die Beanwortung der allgemeinen Frage natürlich insbesondere für Suse 8.0 (eben weil ich die verwende)
s.o. Ich kenne die 8.0 nicht.
Wie geht ihr sonst vor, wenn ihr unbedingt ein Proggi für Eure alte Distri haben wollt?
Sourcen saugen bzw. sofern vorhanden das .src.rpm, das .spec selbst erstellen oder anpassen. Backen, installieren. Dazu musst du aber ziemlich genau wissen was du tust und bereit sein viel zu lernen. Aber sei dir bewusst, dass du spaetestens in 1-2 Jahren grosse Huerden haben wirst. Ich weiss wovon ich rede. Ich muss praktisch alles selber kompilieren (SUSE 6.2 basiert!) und es gibt einen grossen Haufen schlecht erstellter .specs da draussen (auch von SUSE, die neueren sind aber deutlich besser als frueher, AFAIR).
Gibt es eine Liste (ein Howto?) mit den Besonderheiten von Suse? (z.B. dass sich das Suse pkg-config in /usr/bin befindet, wenn man es mit dem Dreisatz installiert aber in /usr/local/bin? das war letztlich (mit) mein Problem in dem o.g. Thread)
Leider nein. Wobei dein Problem war ja (fuer mich) trivial zu loesen (wobei sich streiten laesst, was jetzt alles eine korrekte pkg-config konfiguration ist). Mein pkg-config liegt z.B. in /opt/gnome2/bin -- ich habe aber halt gelesen was pkg-config macht (man kann auch nicht installierte manpages mit 'man -l datei' lesen ;) und wie man es konfiguriert. Und wenn (was IMO vergleichbar ist) MANPATH und INFOPATH in /etc/profile{,.local} gesetzt werden, kann ebenso sauber auch PKG_CONFIG_PATH dort setzen. HTH, -dnh --
Gehörst du auch zu den Leuten, die Ironie erst erkennen, wenn sie ihnen ein Loch ins Knie bohrt und Goldfische drin züchtet? [Sebastian Posner in dasr]
Am Dienstag, 10. August 2004 21:40 schrieb Frank Bertling:
Daher jetzt meine allgemeine Fragen: Kann man jetzt auch [ ] beliebige rpm von Suse (andere Versionsnummer)
Jein, auf ähnlicher Basis (vor allem glibc) aufbauend Systeme können oft auch mit den RPMs der anderen umgehen. Zwischen SuSE 7.1 bis 8.0 gabs da oft keine Probleme. Konkret kann man das aber nur im Einzelfall mit einem RPM ausprobieren. Zwischen 8.0 und 8.1 wirst Du z.B. keine C++ Programme austauschen können (gcc wechsel), zwischen 8.1 und 8.2 gibts dann den großen Break wegen glibc, da wird außer noarch RPMs kaum was austauschbar sein.
[ ] beliebige src.rpm von Suse (andere Versionsnummer)
Geht oft, aber nicht immer, fixe gesetzte Abhängigkeiten sind da immer problematisch. Ist aber in der Regel ne Kleinigkeit das SPEC-File entsprechend zu ändern (wenn man weiß was man tut).
[ ] beliebige src.rpm andere Distri
Fast das gleiche wie oben, nur dass es noch öfter Probleme mit den Abhängigkeitenvorgaben gibt (andere Aufteilung, andere Benennung) und eventuell auch von der Verzeichnisstruktur.
[ ] beliebige src.rpm andere Distri
Hm, inwiefern unterscheidet sich die Frage von der vorigen? Meinst Du einmal Binary und einmal Source RPMs? Binary-RPMs würde ich generell nicht installieren, wenn sie nicht zur Distri passen, lieber die Source-RPMs neu compilieren.
mal versuchen (in der Hoffnung dass es klappt) oder sorgen die pre und postinstall Dinge der rpms dafür, dass man letztlich genauso weit kommt wie mit ./configure, make, make install (bzw. ersatzweise)
Pre und Postinstall sind Sachen, ausserhalb von ./configure, make und make install, da können zusätzliche Scripts aufgerufen werden, um z.B. gleich einen Dienst per insserv einzubinden. Da ist weit mehr möglich, als man beim Einsatz von checkinstall je erahnen könnte ;-)
Wie geht ihr sonst vor, wenn ihr unbedingt ein Proggi für Eure alte Distri haben wollt?
So alt las ich die Distir normalerweise nicht werden. Die neue glibc ab SuSE 8.2 ist z.B. ein massiver Grund umzusteigen, oder ein neuer gcc.
Gibt es eine Liste (ein Howto?) mit den Besonderheiten von Suse?
Muss ich passen, aber auf den Packman-FAQ Seiten findest Du einige Hinweise zur RPM erstellung.
(z.B. dass sich das Suse pkg-config in /usr/bin befindet, wenn man es mit dem Dreisatz installiert aber in /usr/local/bin? das war letztlich (mit) mein Problem in dem o.g. Thread)
/usr/local ist das Verzeichnis für eigene Installationen, unter /usr kommen Distributionseigene Programme. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Manfred Tremmel wrote:
[...] Pre und Postinstall sind Sachen, ausserhalb von ./configure, make und make install, da können zusätzliche Scripts aufgerufen werden, um z.B. gleich einen Dienst per insserv einzubinden. Da ist weit mehr möglich, als man beim Einsatz von checkinstall je erahnen könnte ;-)
*seufz* Du hast die Doku zu checkinstall wohl immer noch nicht gelesen, oder? :-) Ich geb' Dir mal 'nen Auszug: CheckInstall supports preinstall, postinstall, preremove and postremove scripts for RPM and Debian packages. CU, Th.
Am Dienstag, 10. August 2004 21:40 schrieb Frank Bertling: [...Welche rpms man verwenden darf ...] Also sehe ich das zusammengefasst wie folgt richtig? Wenn man auch mal KDE 3.2.x haben will, dann muss man sich entweder sehr schlau machen (wie baue ich mir mein eigenes spec für ein RPM), sich der Versionitis (ständig neue Version installieren) hingeben, hoffen, dass man irgendwo im Netz was findet oder sich sein RPM System durch den berühmten Dreisatz kaputtinstalllieren (und landet dann vermutlich wieder bei Versionitis) Gruss Frank
participants (4)
-
David Haller
-
Frank.Bertling@t-online.de
-
Manfred Tremmel
-
Thomas Hertweck