• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst]Wie entferne ich meinen doppelten Banshee ?

gm2601

Advanced Hacker
Auf Empfehlung im Chat habe ich mir (mit Mühen, aber erfolgreich :D ) smart installiert und suche seither nach einer Lösung meine 2 Versionen von banshee loszuwerden.
Code:
pm -qa | grep  banshee
banshee-0.10.9-21
banshee-engine-gst-0.10.9-21
banshee-engine-gst-0.10.3-2
smart und rpm bringen Fehlermeldungen
Code:
error: %postun(banshee-engine-gst-0.10.3-2.i586) scriptlet failed, exit status 127

rpm -e banshee-engine-gst-0.10.3-2
warning: waiting for exclusive lock on /var/lib/rpm/Packages
Hab den rpm auch schon erfolglos im "init 2" versucht.
Welcher Holzhammer führt zum Erfolg?
 
Zuallererst bitte mal sämtliche Programme beenden, die noch auf die RPM-Datenbank zugreifen (rpm, smart, YaST...).

Danach:
Code:
rpm -e banshee-engine-gst-0.10.3-2 --noscripts
"--noscripts" ist das Entscheidende.
 
OP
gm2601

gm2601

Advanced Hacker
Wer sagt's denn!
Als ich neulich "den Chat" mit "Hallo Guru's" begrüßte, gab's ein paar Skeptiker, dabei ist es doch SOOOO einfach bei mir Guru zu sein.
Danke!
Um unverschämt zu sein noch die Frage:Kann man sowas -bei Bedarf- auch dem "Smart" beibringen UND kannst Du Dich etwas über die Funktion solcher scripts auslassen?
 
Ja, man kann diese Option auch über smart verwenden. Zum Beispiel so:
Code:
smart remove <Paket> -o rpm-noscripts=True
Damit werden die Skripte bei dieser einen Transaktion ignoriert, ohne die Option dauerhaft zu setzen. Die Option dauerhaft zu setzen, ist nicht empfehlenswert, weil diese Skripte sehr wichtig sein können.

Mit den Skripten hat es folgendes auf sich: Das sind Befehle, die bei Transaktionen vor oder nach dem Entpacken der Pakete ins Dateisystem ausgeführt werden. Bei diesem Paket hier geht es um den gstreamer-Cache: gstreamer ist ein Plugin-Framework, die Plugins werden mit einem Cache verwaltet, der nach dem Hinzufügen oder Entfernen eines Plugins neu aufgebaut werden muss, sonst werden die Plugins nicht erkannt.

Leider haben die gstreamer-Entwickler sich entschieden, die Handhabung des Cache zu ändern. Den Befehl, der den Neuaufbau des Cache anstößt, gibt es nicht mehr, stattdessen wird der Cache bei jeder Benutzung eines gstreamer-basierten Programms automatisch neu aufgebaut.

Deswegen schlägt das %post-Installations-Skript Deines Pakets fehl, weil es einen Befehl benutzt, den es nicht mehr gibt, was niemand vorhergesehen hat. In diesem Fall ist die Option "--noscripts" genau richtig, weil das Skript zu nichts mehr gut ist. Durch diese Option wird das fehlschlagende Skript übersprungen.
 
OP
gm2601

gm2601

Advanced Hacker
Hi traffic,

danke für Deine Ausführungen... zumindest habe ich verstanden, wie man smart bei Bedarf das beibringt und, daß man das auch nur bei Bedarf einsetzen soll. Nun werde ich mich zu Wiki begeben um die Begriffe: gstreamer, Plugin-Framework, %post-Installations-Skript ein wenig zu erhellen, wobei ich beim letzten bereits einen Anfangsverdacht habe :) Es ist für die Lösung meines Problems auch nicht wichtig, daß Du mir die Begriffe auch noch erklärst, da Deine Zeit für punktgenaue Antworten an User meines Kalibers besser genutzt ist. :wink:
 
Das Problem mit mehrfachen Einträgen hatte ich schon öfters. Um das zu bereinigen, muss man ein älteres oder neueres Paket einspielen, aber ohne dabei --force zu verwenden. Dann wieder das gewünschte einspielen.
Umständlich, aber welcher Honk hat rpm so gebaut, dass man überhaupt zwei gleiche Versionen installieren kann... *grübel*
 
jengelh schrieb:
Das Problem mit mehrfachen Einträgen hatte ich schon öfters. Um das zu bereinigen, muss man ein älteres oder neueres Paket einspielen, aber ohne dabei --force zu verwenden. Dann wieder das gewünschte einspielen.
Warum nicht einfach das nicht mehr benötigte Release deinstallieren?

Probleme gibt es damit nur, wenn die Pakete überlappende Dateien enthalten und in der verkehrten Reihenfolge installiert wurden (z.B. wenn man das neue Release behalten will, das ältere aber nach dem neueren installiert wurde).
jengelh schrieb:
Umständlich, aber welcher Honk hat rpm so gebaut, dass man überhaupt zwei gleiche Versionen installieren kann... *grübel*
Die Releases sind ja nicht gleich.

Zwei völlig gleiche (d.h. im Hinblick auf %{NAME}, %{VERSION}, %{RELEASE} und %{ARCH} gleiche) Pakete können nicht gleichzeitig installiert sein. So schlau ist rpm dann schon, aber wenn mindestens einer der vier Tags unterschiedlich ist, lässt rpm die Parallelinstallation zu.

Die doppelt installierten Pakete können auf unterschiedlichem Wege zustandekommen, z.B. durch eine abgebrochene Transaktion, weil rpm immer zuerst das neue Paket installiert und danach erst das alte entfernt. Bricht die Transaktion mittendrin ab, dann bleiben beide Datenbankeinträge stehen.

In diesem Fall hier ist das defekte %postun-Skript für den Doppeleintrag verantwortlich.
 
Oben