Wie man deb-Pakete anpasst.
Marias Tablet hat einen toten Akku, ist also derzeit nicht zum Geocachen zu gebrauchen. Muss also der kleine eeePC wieder dafür herhalten. Nun ist geocachen mit FoxtrotGPS und offenem Browser daneben etwas umständlich. Für Android gibt es einige Apps – aber gibts auch was für Linux?
Ja, gibt es: OCM OpenCacheManager. Leider sind die fertigen Pakete nur für Ubuntu gedacht. Da ist eine Abhängigkeit drin, die die Installation unter Debian verhindert, der sog. „ubuntu-system-service“. Dabei handelt es sich um Dbus. Unter Debian heißt das Paket mit DBus auch so: dbus. Ich hab es mir daraufhin einfach gemacht und einfach die Abhängigkeiten im opencachemanager-Paket geändert, sprich die ubuntu-system-service rausgeschmissen.
Im Prinzip geht das so:
- Man entpackt das deb-Paket,
- extrahiert die Control-informationen,
- ändert die Control-Datei und
- lässt das Paket wieder zusammenbauen.
Anschließend sollte sich das Paket installieren lassen. Bei mir sah das nun folgendermaßen aus:
Erstmal hab ich mir hier das aktuelle OCM-deb-Paket für Ubuntu runtergeladen. In einem Terminal bin ich root geworden, hab ein Verzeichnis zum Entpacken angelegt und hab dahinein das Paket ausgepackt:
root@Sesta:/# cd /root
root@Sesta:/root# mkdir ./ocm
root@Sesta:/root# cp $VONWOAUCHIMMER/opencachemanager_1.0.14-1_all.deb /root/
root@Sesta:/root# dpkg-deb -x ./opencachemanager_1.0.14-1_all.deb ./ocm/
root@Sesta:/root# dpkg-deb -e ./opencachemanager_1.0.14-1_all.deb ./ocm/DEBIAN
root@Sesta:/root# nano ./ocm/DEBIAN/control
Im Editor suchen wir jetzt die Zeile, die mit Depends beginnt:
Depends: libmono-system2.0-cil, libwebkit1.1-cil, libmono-sqlite2.0-cil, gpsbabel, libgtk2.0-cil, libndesk-dbus1.0-cil, libgconf2.0-cil, ubuntu-system-service, libndesk-dbus-glib1.0-cil, librsvg2-common, libmono-system-web2.0-cil, libmono-cairo2.0-cil, libmono-system-web4.0-cil, libmono-system-data4.0-cil
Das fett markierte löschen wir und speichern die Datei. Jetzt brauchen wir nur noch das Paket zusammenzubauen und zu installieren.
root@Sesta:/root# dpkg-deb -b ./ocm opencachemanager_1.0.14-1_all_debian.deb
dpkg-deb: Paket »opencachemanager« wird in »opencachemanager_1.0.14-1_all_debian.deb« gebaut.
root@Sesta:/root# dpkg -i ./opencachemanager_1.0.14-1_all_debian.deb
Vormals nicht ausgewähltes Paket opencachemanager wird gewählt.
(Lese Datenbank … 161432 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von opencachemanager (aus …/opencachemanager_1.0.14-1_all_debian.deb) …
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von opencachemanager:
opencachemanager hängt ab von libwebkit1.1-cil; aber:
Paket libwebkit1.1-cil ist nicht installiert.
opencachemanager hängt ab von libgtk2.0-cil; aber:
Paket libgtk2.0-cil ist nicht installiert.
opencachemanager hängt ab von libndesk-dbus1.0-cil; aber:
Paket libndesk-dbus1.0-cil ist nicht installiert.
opencachemanager hängt ab von libgconf2.0-cil; aber:
Paket libgconf2.0-cil ist nicht installiert.
opencachemanager hängt ab von libndesk-dbus-glib1.0-cil; aber:
Paket libndesk-dbus-glib1.0-cil ist nicht installiert.
opencachemanager hängt ab von libmono-system-web2.0-cil; aber:
Paket libmono-system-web2.0-cil ist nicht installiert.
opencachemanager hängt ab von libmono-cairo2.0-cil; aber:
Paket libmono-cairo2.0-cil ist nicht installiert.
opencachemanager hängt ab von libmono-system-web4.0-cil; aber:
Paket libmono-system-web4.0-cil ist nicht installiert.
opencachemanager hängt ab von libmono-system-data4.0-cil;
dpkg: Fehler beim Bearbeiten von opencachemanager (–install):
Abhängigkeitsprobleme – verbleibt unkonfiguriert
Trigger für desktop-file-utils werden verarbeitet …
Trigger für gnome-menus werden verarbeitet …
Trigger für mime-support werden verarbeitet …
Trigger für shared-mime-info werden verarbeitet …
Fehler traten auf beim Bearbeiten von:
opencachemanager
Offenbar fehlt noch bissel was. Es lässt sich einfach erzwingen, dass das Fehlende installiert wird:
root@Sesta:/root# apt-get install -f
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen…. Fertig
Abhängigkeiten werden korrigiert … Fertig
Die folgenden zusätzlichen Pakete werden installiert:
libgconf2.0-cil libgtk2.0-cil libmono-cairo2.0-cil libmono-cairo4.0-cil libmono-data-tds4.0-cil libmono-messaging2.0-cil libmono-sharpzip2.84-cil libmono-sqlite4.0-cil libmono-system-core4.0-cil libmono-system-data-linq2.0-cil libmono-system-data4.0-cil
libmono-system-enterpriseservices4.0-cil libmono-system-messaging2.0-cil libmono-system-transactions4.0-cil libmono-system-web-applicationservices4.0-cil libmono-system-web-services4.0-cil libmono-system-web2.0-cil libmono-system-web4.0-cil libmono-wcf3.0-cil
libmono-web4.0-cil libmono2.0-cil libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libwebkit1.1-cil
Vorgeschlagene Pakete:
monodoc-gtk2.0-manual libmono-winforms2.0-cil monodoc-webkit-manual
Die folgenden NEUEN Pakete werden installiert:
libgconf2.0-cil libgtk2.0-cil libmono-cairo2.0-cil libmono-cairo4.0-cil libmono-data-tds4.0-cil libmono-messaging2.0-cil libmono-sharpzip2.84-cil libmono-sqlite4.0-cil libmono-system-core4.0-cil libmono-system-data-linq2.0-cil libmono-system-data4.0-cil
libmono-system-enterpriseservices4.0-cil libmono-system-messaging2.0-cil libmono-system-transactions4.0-cil libmono-system-web-applicationservices4.0-cil libmono-system-web-services4.0-cil libmono-system-web2.0-cil libmono-system-web4.0-cil libmono-wcf3.0-cil
libmono-web4.0-cil libmono2.0-cil libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libwebkit1.1-cil
0 aktualisiert, 24 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
1 nicht vollständig installiert oder entfernt.
Es müssen noch 4.302 kB von 5.308 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 16,3 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]
Ein beherztes [Enter] erledigt unsere Probleme. Aufräumen sollte man im /root-Verzeichnis noch:
root@Sesta:/root# rm -r ./ocm
OCM sollte sich im Desktop-Anwendungs-Menü bei „Sonstige“ finden. Viel Spaß damit!
(swg)