www.to-st.de
Home  |  Impressum  |  Datenschutz  |  Kolophon  |  Kontakt
Eyecatcher Image: /img/eyecatcher/bahn/teaser_780x175_bahn_holland_regio.jpg
SI4735 PC-Radio USB V2 Linux Software Linux & Computer Blog / Vermischtes  
Lexmark X215 MFP unter Linux Scannen mit Linux (h) CD-Brennen mit Linux (h) EPSON E0855-2 LCD Display unter Linux  
Artikel auf Deutscharticle not available in English

Abhängigkeit von kdelibs4c2a der KDE-Debian-Pakete für Xandros entfernen

... oder auch andere Abhängigkeiten, sofern unsinnig oder nicht benötigt

Die Debian-Pakete vermerken zumeist, welche anderen Pakete ggf. noch zum Betrieb einer bestimmten Software benötigt werden und Programme wie apt-get oder synaptic installieren diese Pakete auch automatisch "nach" bzw. "mit dazu". Leider zieht dies manchmal nach sich, dass sehr viele Pakete aktualisiert (oder gar ältere installiert) werden bzw. die Abhängigkeiten kann man "in den Wind schlagen" (ignorieren). Installiert man nun trotzdem (mit -f bzw. unter Umgehung der Warnungen) meckern apt-get/dpkg/synaptic zukünftig herum.

Spezielles Problem: Man möchte ein KDE-Programm aus dem Xandros-Repository verwenden, welches leider von der kdelibs4c2a abhängt - man will aber kein volles KDE (Advanced Desktop) installieren. Deshalb kann man diese Abhängigkeit einfach aus dem Debian-Paket entfernen, das Programm wird in der Regel trotzdem laufen.

Inhalt



Das Problem ...

Ich hab beschlossen, den Eee PC im wesentlichen so zu belassen wie er ist, und halt nur zusätzliche Software zu installieren und das ganze ein wenig anzupassen. Hierzu gehört auch, den schlanken, auf icewm basierenden, "Easy Mode" zu verwenden.

Dennoch hat man manchmal Lust auf das ein oder andere KDE-Programm, die man dann bspw. im Xandros Repository (deb http://xnv4.xandros.com/xs2.0/upkg-srv2 etch main contrib non-free) finden kann. Leider hängen viele dieser Pakete von dem Paket kdelibs4c2a ab, welches angeblich nicht gefunden wird bzw. installiert werden kann.

Aufgefallen ist mir dies, als in einem Forum bei einem Problem bzgl. Fullscreen-Videodarstellung unter gwenview nach einem Plugin gefragt wurde und ich codeine (eine kleinen KDE-Player auf xine-Basis mit KPart-Plug) installieren wollte:
/home/user>apt-get install codeine
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder dass, wenn Sie die
Unstable-Distribution verwenden, einige erforderliche Pakete noch nicht
kreiert oder aus Incoming herausbewegt wurden.

Da Sie nur eine einzige Operation angefordert haben, ist es sehr wahrscheinlich,
dass das Paket einfach nicht installierbar ist und eine Fehlermeldung über
dieses Paket erfolgen sollte.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
  codeine: Hängt ab: kdelibs4c2a (>= 4:3.5.5-1) ist aber nicht installierbar
E: Kaputte Pakete
Da denkt man nur, arg so ein Mist .... und installiert es trotzdem, indem man die Abhängigkeit "ignoriert" (z.B. durch die eher unsinnige Verwendung von -f bzw. --force... oder dpkg --ignore-depends=kdelibs4c2a -i ...).

Das führt wiederum dazu, dass dann apt-get/dpkg/synaptic das nächste Mal rummeckert....

Die KDE-Programme funktionieren aber auch ohne diese Abhängigkeit, man muss nur aus der control-Datei des Paketes diese entfernen und das deb-Paket dann von Hand installieren.

Die Beschreibung erfolgt anhand des Paketes für codeine und die Abhängigkeit von kdelibs4c2a ... man kann dies natürlich auf beliebige Sachen übertragen. Das muss nicht nicht funktionieren - und zwar, wenn man das zugrundeliegend Paket wirklich benötigt!

Ach ja: Das ganze als root in der Shell ... (z.B. = [Strg] + [Alt] + [T] und sudo su).

Download des Debian-Paketes

Als ersten Schritt einfach nachschauen, woher denn das Paket kommt:
/home/user>apt-cache policy codeine
codeine:
  Installiert:(keine)
  Mögliche Pakete:1.0.1-3.dfsg-2
  Versions-Tabelle:
     1.0.1-3.dfsg-2 0
        900 http://xnv4.xandros.com etch/main Packages
Wie wir sehen, kommt es aus dem Repository http://xnv4.xandros.com, genauer gesagt (kann man in der /etc/apt/sources.list nachschlagen) aus
deb http://xnv4.xandros.com/xs2.0/upkg-srv2 etch main contrib non-free

Also geht man mit dem Internetbrowser zu http://xnv4.xandros.com/xs2.0/upkg-srv2 und klickt sich zu dem betreffenden Debian-Paket durch, d.h. zum Verzeichnis http://xnv4.xandros.com/xs2.0/upkg-srv2/pool/main/c/codeine/ und kann dann dort das betreffende Paket (...i386.deb) herunterladen.

Alternativ einfach die URL kopieren und in der Shell:
wget http://xnv4.xandros.com/xs2.0/upkg-srv2/pool/main/c/codeine/codeine_1.0.1-3.dfsg-2_i386.deb
Eine weitere Variante ist, es bei der Installation mit apt-get einfach nur downzuloaden (Option -d)
apt-get -d install <paket>
Das Paket selbst findet man dann in /var/cache/apt/archives/.

Entpacken des Debian-Paketes

Zuerst benötigen wir ein temporäres Verzeichnis und in diesem noch das Verzeichnis DEBIAN:
mkdir tempdir
mkdir tempdir/DEBIAN
Danach das Debian-Paket entpacken:
dpkg -x codeine_1.0.1-3.dfsg-2_i386.deb tempdir/
dpkg -e codeine_1.0.1-3.dfsg-2_i386.deb tempdir/DEBIAN/

Fixing: Abhängigkeit entfernen

In dem Verzeichnis tempdir/DEBIAN befindet sich die Debian-Kontroll-Datei control, in der u.a. auch die Abhängigkeiten vermerkt sind:
...
Depends: kdelibs4c2a (>= 4:3.5.5-1), libc6 (>= 2.3.6-6), libgcc1 (>= 1:4.1.1....
...
Hier entfernen wir einfach kdelibs4c2a (>= 4:3.5.5-1), dazu halt in das Verzeichnis wechseln:
cd tempdir/DEBIAN
... mit einem Editor die Datei bearbeiten ... z.B.
kate control
... Änderung vornehmen und speichern ... dann ggf. die Backup-Datei löschen
rm *~
und wieder zurück in unser eigentliches Verzeichnis wechseln
cd ../..

Debian-Paket wieder zusammenbauen

Um das Paket wieder neu zusammenzubauen:
dpkg -b tempdir codeine_1.0.1-3.fixed-2_i386.deb
Man kann natürlich vorher das Originalpaket sichern (sehr sinnvoll!) und/oder einen modifizierten Dateinnamen für das neue Paket benutzen.

Paket manuell installieren

Zur Installation des Paketes nun einfach:
dpkg -i codeine_1.0.1-3.fixed-2_i386.deb
eingeben. Das wars auch schon.

Links / Quellen

Quellen gibt es genug, hier nur einmal beispielhaft:
[1] http://www.debian.org/doc/FAQ/ch-pkg_basics.de.html
Mehr zu Debian-Paketen und dem control-File in Die Debian GNU/Linux-FAQ – Kapitel 6 - Grundlagen des Debian-Paketverwaltungssystems
[2] http://www.linuxdevices.com/articles/AT8047723203.html
auch interessant How to make deb packages auf linuxdevices.com