Pakete mit Verweisen auf alte Bibliotheken installieren
Vorweg: Ich bin wahrlich kein Compilerexperte, und dieser Beitrag entstand auf Grundlage diverser Suchmaschinenkonsultationen.... Entscheidend ist, daß das Problem durch diese Vorgehensweise sehr zufriedenstellend gelöst werden konnte ;-)
Problem:
Auslöser zu diesem Beitrag waren die schon ziemlich nervenaufreibenden Vorgänge um die Umstellung diverser Bibliotheken, die unter dem c-Compiler 3.3 kompiliert wurden, auf solche, die mit dem Compiler 4 erstellt wurden.....
Während solcher Umstellungsphasen kommt es dann oft vor, daß beim Versuch, ein Programm zu installieren, daß noch auf Vorgängerversionen von Bibliotheken beruht, während das restliche System bereits auf den neuen Bibliotheken beruht.. daß in solchem Fall z. B. alle Programme
deinstalliert werden sollen, die bereits auf den neuen Bibliotheken beruhen... Das ist natürlich extrem ärgerlich!
Lange Zeit hab ich mich in Geduld geübt, in der Hoffnung , daß der Maintainer des Paketes schon bald die gewünschte Version herausbringen wird....
Dem kann man aber auch nachhelfen!
Konkretes Beispiel: Nach Umstieg auf KDE 3.4.2 gab es auf meinem Rechner mehrere Pakete, deren aktuelle Versionen die Installation der (Vorgänger)Bibliothek libqt3c102-mt erforderten, während der Rest des Systems sich bereits auf die Nachfolgerversion libqt3-mt bezog.
Dazu gehörten bei mir z. B. die Pakete:
!Skype, QtFProt und kradio!
Nachfolgend nun das, was ich im ubuntu-forum entdeckt habe und sich prima auf
Kanotix übertragen läßt:
- Das heruntergeladene Paket als Sicherung umbenennen:
mv skype_1.2.0.17-1_i386.deb skype_1.2.0.17-1_i386.deb.orig
- Ein temporäres Verzeichnis erstellen, in das der Inhalt des Debs entpackt werden kann:
- Das Deb-Archiv in das temporäre Verzeichnis entpacken:
dpkg-deb --extract skype_1.2.0.17-1_i386.deb.orig skype.tmp
dpkg-deb --control skype_1.2.0.17-1_i386.deb.orig skype.tmp/DEBIAN
- (als root?) mit einem Editor der Wahl die Control-Datei zur Bearbeitung öffnen
kate [Pfad zum Temp-VZ]/skype.tmp/DEBIAN/control
In dieser Control-Datei sind die Abhängigkeiten von bestimmten Bibliotheken angegeben. z. B.:
Depends: libc6 (>= 2.3.2.ds1-4), libgcc1 (>= 1:3.4.1-3), libqt3c102-mt (>= 3:3.3.3.2), libstdc""++""5 (>= 1:3.3.4-1),
libx11-6 | xlibs (>> 4.1.0), libxext6 | xlibs (>> 4.1.0)
Dort suche man die Bibliothek, die den Konflikt hervorruft, hier also libqt3c102-mt, und ans Ende dieses Abschnitts, also vor dem nächsten Komma, setze man durch den Pipe-Strich getrennt den Namen der aktuell auf dem System vorhandenen Datei, ersetze also
libqt3c102-mt (>= 3:3.3.3.2) durch libqt3c102-mt (>= 3:3.3.3.2)|libqt3-mt
Im Falle von qtfprot und kradio sind solche Ergänzungen z. B. auch noch für die kdelibs4 vorzunehmen....
Datei anschließend abspeichern!
- baue aus dem korrigierten Verzeichnis ein neues Paket:
- benenne das Paket wieder in seinen usprünglichen Namen um
mv skype.tmp.deb skype_1.2.0.17-1_i386.deb
- installiere das Paket mittels dpkg oder auch kpackage!
- fertig!
Alternativ könnte man noch versuchen, das Paket mittels alien-Befehl aus einem aktuelleren z. B. rpm-Paket zu erstellen.
zurück