Checkinstall meldet Paket installiert und Paket nicht installiert...
Hallo nochmals , nachdem ich nun gelernt habe, dass man nicht make install macht , sondern immer nur rpms einspielt hab ich mal mit checkinstall rumgespielt um eine neue selbst kompilierte version von openssl zu installieren .... dazu habe ich im src verzeichnis von meinem openssl nach make checkinstall -R aufgerufen. Dann hats ne menge geroedelt , und das generierte Paket auch gleich installiert. Wenn ich jetzt das paket aufrufe mit rpm -i openssl-x-x.rpm sagt mit rpm ordnungsgemaess dass es bereits installiert ist. Will ich es mit -e entfernen sagt es allerdings, dass es NICHT installiert ist. Bei Update ist es dann wieder instaliert. Yast zeigt es zwar an , aber man kann es auch nicht mehr abwaehlen. Was ist hier schiefgelaufen ? Gruesse Filip
Dann hats ne menge geroedelt , und das generierte Paket auch gleich installiert. Wenn ich jetzt das paket aufrufe mit rpm -i openssl-x-x.rpm sagt mit rpm ordnungsgemaess dass es bereits installiert ist. Will ich es mit -e entfernen sagt es allerdings, dass es NICHT installiert ist. Bei Update ist es dann wieder instaliert. Yast zeigt es zwar an , aber
a.) Was sagt ein rpm -q openssl-x-x ? b.) Was sagt ein rpm -e openssl-x-x ?
man kann es auch nicht mehr abwaehlen. Was ist hier schiefgelaufen ?
Gruesse
Filip
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
----- Original Message -----
From: "Robert Paix"
a.) Was sagt ein rpm -q openssl-x-x ? b.) Was sagt ein rpm -e openssl-x-x ?
:/usr/src/packages/RPMS/i386 # rpm -i openssl-0.9.7b-1.i386.rpm package openssl-0.9.7b-1 is already installed :/usr/src/packages/RPMS/i386 # rpm -e openssl-0.9.7b-1.i386.rpm error: package openssl-0.9.7b-1.i386.rpm is not installed :/usr/src/packages/RPMS/i386 # rpm -q openssl-0.9.7b-1.i386.rpm package openssl-0.9.7b-1.i386.rpm is not installed
Hallo Filip. On Wed, Oct 01, 2003 at 01:07:45PM +0200, Filip Lyncker wrote:
From: "Robert Paix"
a.) Was sagt ein rpm -q openssl-x-x ? b.) Was sagt ein rpm -e openssl-x-x ?
:/usr/src/packages/RPMS/i386 # rpm -i openssl-0.9.7b-1.i386.rpm package openssl-0.9.7b-1 is already installed :/usr/src/packages/RPMS/i386 # rpm -e openssl-0.9.7b-1.i386.rpm ^^^^^^^^^^^^^^^^^^^ error: package openssl-0.9.7b-1.i386.rpm is not installed :/usr/src/packages/RPMS/i386 # rpm -q openssl-0.9.7b-1.i386.rpm ^^^^^^^^^^^^^^^^^^ package openssl-0.9.7b-1.i386.rpm is not installed
Die oben markierten Stellen sind überflüssig und führen zu dem Fehler. Das Packet heisst openssl (evtl. noch mit einer Versionsnummer) Um es zu deinstallieren reicht also ein rpm -e openssl oder evtl. auch ein rpm -e openssl-0.9.7b-1 Das .rpm ist aber in jedem Fall überflüssig. Um den korrekten Namen zu bekommen kannst du z.B. folgendes machen. rpm -qa | grep -i openssl Das Zeigt dir dann an, wie das Packet RPM intern heisst. Greetings Daniel -- Linux - life is too short for reboots.
Filip Lyncker schrieb:
nachdem ich nun gelernt habe, dass man nicht make install macht , sondern immer nur rpms einspielt hab ich mal mit checkinstall rumgespielt um eine neue selbst kompilierte version von openssl zu installieren ....
dazu habe ich im src verzeichnis von meinem openssl nach make checkinstall -R aufgerufen.
Dann hats ne menge geroedelt , und das generierte Paket auch gleich installiert.
Das ist mitunter etwas, was man nicht moechte. Leider ist das bei checkinstall bis Version 1.5 so, dass direkt installiert wird. Mit Version 1.6 kann man sich auch nur ein Paket generieren lassen. Die Version 1.6 hat ebenso zahlreiche weitere Verbesserungen gegen- ueber 1.5, Du solltest Dir also vielleicht mal die HP von check- install[1] anschauen und ueberlegen, die neue Version einzusetzen. Wie aber schon gesagt: Das Bauen von eigenen RPMs ist checkinstall vorzuziehen.
Wenn ich jetzt das paket aufrufe mit rpm -i openssl-x-x.rpm sagt mit rpm ordnungsgemaess dass es bereits installiert ist.
Ja, das wurde eben schon installiert. Wenn Du es nochmal installie- ren willst, dann sagt Dir RPM, dass es eben schon installiert ist.
Will ich es mit -e entfernen sagt es allerdings, dass es NICHT installiert ist. Bei Update ist es dann wieder instaliert. Yast zeigt es zwar an , aber man kann es auch nicht mehr abwaehlen. Was ist hier schiefgelaufen ?
Du musst nur "rpm -e openssl" angeben, NICHT "rpm -e openssl-x-x.rpm"! Das ist wohl Dein Fehler. In der RPM-Datenbank ist das Paket verzeich- net, YaST beruecksichtigt es auch bei seinen Abhaengigkeitspruefungen, setzt es aber auf "unantastbar", weil es eine Version ist, die nicht von der SuSE DVD kommt. YaST kann ja nun z.B. keine Patches mehr ein- spielen fuer das Paket usw. Fuer openssh usw. gab es Updates von SuSE. Ich frage mich, warum Du die nicht eingespielt hast. Das waere ganz simpel per YOU gegangen. CU, Th. [1]http://asic-linux.com.mx/~izto/checkinstall/index.php
----- Original Message -----
From: "Thomas Hertweck"
Fuer openssh usw. gab es Updates von SuSE. Ich frage mich, warum Du die nicht eingespielt hast. Das waere ganz simpel per YOU gegangen.
Das wirft bei mir jetzt eine grundsaetzliche frage auf. Klar openssh laesst sich einfach updaten per YOU. Was aber wenn ich ein Programm verwenden will , dass nicht in der neusten version oder garnicht von Suse gepflegt wird ? Zum beispiel ist bei der Suse 8.1 nur die IPSEC Version 1.97 oder so dabei , aktuell ist aber die 2.x , bei der sich einiges geaendert hat. Wenn ich die nun verwenden moechte , hab ich mit dieser Distri ein Problem, nicht? Ich muss es doch deshalb selbst kompilieren. Angenommen dieses Programm benutzt jetzt Openssl, bei dem gerade die Sicherheitslöcher entdeckt worden sind. Wenn ich jetzt das Paket von Suse mit YOU update , sollte openssl anschliessend sicher sein. In wie weit greift jetzt das IPSEC Paket nur auf die natuerlich jetzt geaenderten shared libs zu ? Hat es denn nicht auch .h und .cpp files aus dem Include von dem alten openssl-devel mitgenommen und fest im eigenen Programmcode verbastelt , sodass mein IPSEC Programm immernoch nicht sicher ist? Das IPSEC ist nur ein Beispiel bei dem ich weiss, dass bei der Suse nicht die aktelle version beiliegt, ich bin aber nicht ganz sicher ob das Openssl problem da zutifft. Sicherer bin ich da schon bei cyrus-sasl. Das hab ich kompiliert und es includiert definitiv die sourcen vom aktuell installierten openssl. Also nochmal die Fragen : 1. Wenn die Distribution nicht die gewünschte Version meines Programms unterstützt - muss ich selbst kompilieren ? 2. Wenn sowas passiert, reicht es wohl nicht mehr aus einfach mit YOU z.B. Openssl zu updaten, sondern ich muss anschliessend meine selbstkompilierten programme neu übersetzten. 3. Erkennt jemand in meiner Vorgehensweise einen grundsaetzlichen Fehler oder würde es anders machen ? Gruesse Filip
Filip Lyncker schrieb:
----- Original Message ----- From: "Thomas Hertweck"
To: "SuSE Linux ML" Sent: Wednesday, October 01, 2003 1:45 PM Subject: Re: Checkinstall meldet Paket installiert und Paket nicht installiert...
*seufz* Bitte, schau Dir mal http://learn.to/quote an, um so etwas zu vermeiden.
Das wirft bei mir jetzt eine grundsaetzliche frage auf. Klar openssh laesst sich einfach updaten per YOU. Was aber wenn ich ein Programm verwenden will , dass nicht in der neusten version oder garnicht von Suse gepflegt wird ?
YOU dient dazu, Updates (Bugfixes, etc.) einzuspielen, nicht neue Versionen von Software. Das wurde schon mehrfach diskutiert, das ist auch gut so. SuSE bleibt im Laufe des Supports einer Distribution stets bei der urspruenglich ausgelieferten Version, portiert Patches entsprechend auf diese Versionen zurueck. Das Einspielen von _neuen_ Versionen, nur um Bugs zu fixen, koennte ganz unangenhme Nebenfolgen haben. Christian hat vor kurzem sehr schon den Unterschied zwischen Update und Upgrade erklaert; den Text findest Du sicher im Archiv der Liste.
Zum beispiel ist bei der Suse 8.1 nur die IPSEC Version 1.97 oder so dabei , aktuell ist aber die 2.x , bei der sich einiges geaendert hat. Wenn ich die nun verwenden moechte , hab ich mit dieser Distri ein Problem, nicht? Ich muss es doch deshalb selbst kompilieren.
Entweder hat jemand bereits eine entsprechende Version fuer die von Dir verwendete SuSE-Version gebastelt und stellt ein RPM bereit (z.B. ist Packman[1] eine gute Anlaufstelle), oder aber Du musst die Soft- ware selbst compilieren und ein RPM bauen.
Angenommen dieses Programm benutzt jetzt Openssl, bei dem gerade die Sicherheitslöcher entdeckt worden sind. Wenn ich jetzt das Paket von Suse mit YOU update , sollte openssl anschliessend sicher sein.
Ja. Du behaeltst die Version bei, die mit der SuSE-Distribution kam. SuSE portiert aktuelle Patches zurueck auf diese Version. Durch YOU wird der Bug auf Deinem System gefixt. Die Release-Nummer des Paketes wird sich entsprechend erhoehen.
In wie weit greift jetzt das IPSEC Paket nur auf die natuerlich jetzt geaenderten shared libs zu ? Hat es denn nicht auch .h und .cpp files aus dem Include von dem alten openssl-devel mitgenommen und fest im eigenen Programmcode verbastelt , sodass mein IPSEC Programm immernoch nicht sicher ist?
Ich verstehe nicht, was Du meinst. SuSE hat sich die Patches besorgt, sie in den Quellcode (also die .h und die .c oder .cpp Dateien) ein- gearbeitet und ein neues RPM daraus gemacht. Die Teile der Software, die betroffen waren von dem Bug, werden nun durch YOU auf Deinem Sy- stem ausgetauscht. Damit sind die Loecher gefixt. Ebenso werden evtl. (falls bei Dir installiert) die *-devel Pakete gepatcht und angepasst.
Das IPSEC ist nur ein Beispiel bei dem ich weiss, dass bei der Suse nicht die aktelle version beiliegt, ich bin aber nicht ganz sicher ob das Openssl problem da zutifft. Sicherer bin ich da schon bei cyrus-sasl. Das hab ich kompiliert und es includiert definitiv die sourcen vom aktuell installierten openssl.
Weitere Software, die aufgrund eines Bugs in openssh eines Fix bedarfs, wird sicher auch per YOU gepacht. Wenn Du eigene Software compiliert hast, die Teile von openssh verwendet, dann musst Du schauen, ob die neu uebersetzt werden muss - das haengt davon ab, was genau diese Soft- ware einbindet. Wenn sie nur auf Bibliotheken zurueck greift, kann we- nig passieren, denn die Bibliotheken von openssh wurden ja gefixt. Wenn schon beim Compilieren openssh-spezifische Dinge eingebunden werden und statisch gelinkt wird, dann muss die Software sicher neu uebersetzt werden. Vorausgesetzt, ich habe Deine Frage nun richtig verstanden.
Also nochmal die Fragen :
1. Wenn die Distribution nicht die gewünschte Version meines Programms unterstützt - muss ich selbst kompilieren ?
Ja. Oder es hat jemand schon fuer Dich gemacht und stellt irgendwo Pa- kete bereit.
2. Wenn sowas passiert, reicht es wohl nicht mehr aus einfach mit YOU z.B. Openssl zu updaten, sondern ich muss anschliessend meine selbstkompilierten programme neu übersetzten.
Ja. Wenn sie vom Bug betroffenen Code beim Compilieren eingebunden ha- ben bzw. statisch gelinkt wurden.
3. Erkennt jemand in meiner Vorgehensweise einen grundsaetzlichen Fehler oder würde es anders machen ?
Nein, ist schon OK so. Bei openssh und so halte ich es fuer nicht noetig, die Software selbst zu compilieren, das sollte per YOU ohne Probleme ge- hen und ich weiss auch nicht, was da ein Upgrade bringen sollte. Mehr als Dich sicher verbinden wird auch eine neue Version nicht koennen... Wenn Du viel eigene Software compilierst, musst Du immer darauf achten, ob evtl. eingebundene Teile von einem Bug betroffen sind und dann ent- sprechend pruefen, ob Du Deine Software neu compilieren musst mit dem Fix. CU, Th. [1]http://packman.links2linux.de/
Thomas Hertweck schrieb:
Nein, ist schon OK so. Bei openssh und so halte ich es fuer nicht noetig, die Software selbst zu compilieren, das sollte per YOU ohne Probleme ge- hen und ich weiss auch nicht, was da ein Upgrade bringen sollte. Mehr als Dich sicher verbinden wird auch eine neue Version nicht koennen... Wenn Du viel eigene Software compilierst, musst Du immer darauf achten, ob evtl. eingebundene Teile von einem Bug betroffen sind und dann ent- sprechend pruefen, ob Du Deine Software neu compilieren musst mit dem Fix.
OK , vielen Dank für diese Ausführung. Eine Spitzfindigkeit beschäftigt mich noch : Wenn ich mein Cyrus-SASL Paket mit einer ganz bestimmten Funktion oder Patch brauche, die eben von Suse nicht unterstützt oder einkompiliert wird, welche vorgehensweise ist da die beste? Die Abhängigkeiten bei diesem Paket sind ja so wichtig für die Distribution , dass man es auf keinen Fall deinstallieren sollte. Wenn ich es doch tuhe funktioniert zBdie passwd nicht mehr richtig, wegen fehlender libs. Ist es in diesem Fall ratsam 2 vollstaendigke Versionen des Cyrus-SASL Paketes zu installieren ( also das Suse rpm und mein eigenes ) ? Gruesse Filip
On Mittwoch, 1. Oktober 2003 16:26, Filip Lyncker wrote:
OK , vielen Dank für diese Ausführung. Eine Spitzfindigkeit beschäftigt mich noch : Wenn ich mein Cyrus-SASL Paket mit einer ganz bestimmten Funktion oder Patch brauche, die eben von Suse nicht unterstützt oder einkompiliert wird, welche vorgehensweise ist da die beste? Die Abhängigkeiten bei diesem Paket sind ja so wichtig für die Distribution , dass man es auf keinen Fall deinstallieren sollte. Wenn ich es doch tuhe funktioniert zBdie passwd nicht mehr richtig, wegen fehlender libs. Ist es in diesem Fall ratsam 2 vollstaendigke Versionen des Cyrus-SASL Paketes zu installieren ( also das Suse rpm und mein eigenes ) ?
Hi ! Ich würde: - den cyrus-sasl source-rpm installieren - in /usr/src/package/SOURCE befindet sich dann ein cyrus*.tar.bz2 o.ä. - den dekomprimieren - den Patch drüberbügeln - die cyrus tar -Archive wieder bauen - dann rpm -ba /usr/src/package/SPECS/cyrus.spec (o.ä.) - dies baut dir dann ein neues RPM das irgendwo unter /usr/src/packages/RPMS zu finden ist; und dann dieses installieren
Gruesse
Filip
MfG, Gerd -- ------------------------------------------------------------------------ gmichalk@freegates.be \\_// (. .) Powered by SuSE Linux 8.2 -------------------------------------oOOo-oOOo--------------------------
On Wed, 2003-10-01 at 16:26, Filip Lyncker wrote:
Thomas Hertweck schrieb:
Nein, ist schon OK so. Bei openssh und so halte ich es fuer nicht noetig, die Software selbst zu compilieren, das sollte per YOU ohne Probleme ge- hen und ich weiss auch nicht, was da ein Upgrade bringen sollte. Mehr als Dich sicher verbinden wird auch eine neue Version nicht koennen... Wenn Du viel eigene Software compilierst, musst Du immer darauf achten, ob evtl. eingebundene Teile von einem Bug betroffen sind und dann ent- sprechend pruefen, ob Du Deine Software neu compilieren musst mit dem Fix.
OK , vielen Dank für diese Ausführung. Eine Spitzfindigkeit beschäftigt mich noch : Wenn ich mein Cyrus-SASL Paket mit einer ganz bestimmten Funktion oder Patch brauche, die eben von Suse nicht unterstützt oder einkompiliert wird, welche vorgehensweise ist da die beste? Der einfachste Weg besteht darin, sich das src.rpm des Vendors (hier SuSE) zu nehmen, dessen rpm-spec auf deine Bedürfnisse abzustimmen (Patches einbauen, andere Version o.ä.), dieses RPM dann zu übersetzen und zu installieren.
Ein brutaler Weg wäre, das SuSE rpm installiert zu lassen, und stattdessen deine Version (mit genau den von SuSE verwendeten Pfaden) vom Quellcode drüber zu installieren. Damit täuschst Du rpm, yast und. Co. vor, das SuSE rpm sei installiert. Dieser Weg funktioniert allerdings nur dann, wenn Du genau weisst was Du tust. Ich rate davon *nachdrücklich* ab! Solltest Du dich, aus welchen Gründen auch immer, desöfteren in der Situation befinden, dass fundamentale Pakete für Dich nicht geeignet erscheinen, solltest Du Dich ernsthaft mit der Frage beschäftigen, ob die SuSE Distribution für deinen Anwendungsfall geeignet ist und Dich nach einer anderen Distri umschauen.
Ist es in diesem Fall ratsam 2 vollstaendigke Versionen des Cyrus-SASL Paketes zu installieren ( also das Suse rpm und mein eigenes ) ? Auf keinen Fall. In Einzelfällen geht es, zwei geschickt angepasste RPMS nebeneinander zu installieren (Andere Prefixes, andere Paketnamen). Aber auch dies funktioniert nur dann wenn man genau weiss was man tut. Bei fundamentalen Paketen (Servern, glibc, gcc u.ä.) wird es in Regel zu Komplikationen führen.
Ralf
Am Mittwoch, 1. Oktober 2003 15:04 schrieb Filip Lyncker:
Das wirft bei mir jetzt eine grundsaetzliche frage auf. Klar openssh laesst sich einfach updaten per YOU. Was aber wenn ich ein Programm verwenden will , dass nicht in der neusten version oder garnicht von Suse gepflegt wird ? Zum beispiel ist bei der Suse 8.1 nur die IPSEC Version 1.97 oder so dabei , aktuell ist aber die 2.x , bei der sich einiges geaendert hat. Wenn ich die nun verwenden moechte , hab ich mit dieser Distri ein Problem, nicht? Ich muss es doch deshalb selbst kompilieren.
Wenn Du diese neue Version benötigst und sie nirgens als fertiges RPM findest (z.B. bei Packman), musst Du selbst compilieren, richtig.
Angenommen dieses Programm benutzt jetzt Openssl, bei dem gerade die Sicherheitslöcher entdeckt worden sind. Wenn ich jetzt das Paket von Suse mit YOU update , sollte openssl anschliessend sicher sein. In
Sollte es.
wie weit greift jetzt das IPSEC Paket nur auf die natuerlich jetzt geaenderten shared libs zu ? Hat es denn nicht auch .h und .cpp
Naja, die alte gibts nichtmehr, also muß es zwangsweise auf die neue gehen, es sei denn, sie wurden statisch reingelinkt, dann muß auch dieses Paket aktualisiert werden.
files aus dem Include von dem alten openssl-devel mitgenommen und fest im eigenen Programmcode verbastelt , sodass mein IPSEC Programm immernoch nicht sicher ist?
Normalerweise werden Bibliotheken dynamisch hinzugeladen. Die includes (.h-Dateien) sollten eigentlich keine Sicherheitslücken enthalten, da sie Strukturen und Variablen, aber keinen Programmcode enthalten. Damit es da zu keinen Inkompatibilitäten kommt, liefert SuSE ja auch keine neuen Versionen per YOU, sondern bereinigt die besthenden.
Das IPSEC ist nur ein Beispiel bei dem ich weiss, dass bei der Suse nicht die aktelle version beiliegt, ich bin aber nicht ganz sicher ob das Openssl problem da zutifft. Sicherer bin ich da schon bei cyrus-sasl. Das hab ich kompiliert und es includiert definitiv die sourcen vom aktuell installierten openssl. Also nochmal die Fragen :
1. Wenn die Distribution nicht die gewünschte Version meines Programms unterstützt - muss ich selbst kompilieren ?
Wenn Du es brauchst ja. Solltest Dir aber dreimal überlegen, ob Dir die neue Version wirklich entsprechende Vorteile bringt und ob die Probleme, die Du Dir damit eventuell einhandelst, den Nutzwert nicht übersteigt. Die mitgelieferte Version wurde mit der Softwarekonstellation getestet und sollte laufen. Sie wird von SuSE gewartet und Bugs/Sicherheitslücken gefixed. Bei eigenen Versionen musst Du Dich um solche Sachen selbst kümmern.
2. Wenn sowas passiert, reicht es wohl nicht mehr aus einfach mit YOU z.B. Openssl zu updaten, sondern ich muss anschliessend meine selbstkompilierten programme neu übersetzten.
Nicht unbedingt, siehe oben.
3. Erkennt jemand in meiner Vorgehensweise einen grundsaetzlichen Fehler oder würde es anders machen ?
Nö. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Manfred Tremmel schrieb:
[...] Die includes (.h-Dateien) sollten eigentlich keine Sicherheitslücken enthalten, da sie Strukturen und Variablen, aber keinen Programmcode enthalten. [...]
Das stimmt so aber nicht. Bei C++ findest Du im Header die Implementierungen von Templates. Schau Dir zum Beispiel nur mal die ganzen QT-Header Files an. CU, Th.
participants (7)
-
Daniel Lord
-
Filip Lyncker
-
Gerd-Christian Michalke
-
Manfred Tremmel
-
Ralf Corsepius
-
Robert Paix
-
Thomas Hertweck