Ich habe mir neulich schonmal die Software von changers.com angeguckt, einem kleinem berliner Start-Up, das Solarpanel und dazu passende Akkuspacks verkauft. Der Clou: ein bisschen Hardware in dem Akku misst, wieviel Energie erzeugt wurde und so kann man die Daten per USB übertragen und bei facebook/twitter hochladen.
Anyway, das .deb-Paket ließ sich erst nicht installieren, weil ein paar Abhängigkeiten fehlten. Ist ja auch kein Problem, das löst unter Ubuntu normalerweise ein
sudo apt-get install -f
Die Abhängigkeiten wurden installiert nur gab das auch diese Fehlermeldung:
E: Das Paket mobile-battery muss neu installiert werden, es kann jedoch kein Archiv dafür gefunden werden.
Dasselbe passierte wenn ich mit folgendem Befehl versucht habe, das Paket zu entfernen:
sudo apt-get remove mobile-battery
Wäre jetzt alles nicht so schlimm gewesen aber ich konnte weder über upgrade meine Programme auf dem aktuellen Stand halten noch über install neue installieren!
Eine Neuinstallation brachte mich dann auf den richtigen Weg:
repat@laptop:~/Downloads$ sudo dpkg -i changers_software_v274-1_amd64.deb (Lese Datenbank ... 473163 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Ersetzen von mobile-battery 1.0-274-1 (durch changers_software_v274-1_amd64.deb) ... Ersatz für mobile-battery wird entpackt ... /var/lib/dpkg/info/mobile-battery.postrm: Zeile 11: return: can only `return' from a function or sourced script dpkg: Warnung: Unterprozess altes post-removal-Skript gab den Fehlerwert 1 zurück dpkg - stattdessen wird Skript aus dem neuen Paket probiert ... /var/lib/dpkg/tmp.ci/postrm: Zeile 11: return: can only `return' from a function or sourced script dpkg: Fehler beim Bearbeiten von changers_software_v274-1_amd64.deb (--install): Unterprozess neues post-removal-Skript gab den Fehlerwert 1 zurück /var/lib/dpkg/tmp.ci/postrm: Zeile 11: return: can only `return' from a function or sourced script dpkg: Fehler beim Aufräumen: Unterprozess neues post-removal-Skript gab den Fehlerwert 1 zurück Trigger für bamfdaemon werden verarbeitet ... Rebuilding /usr/share/applications/bamf.index... Trigger für desktop-file-utils werden verarbeitet ... Trigger für gnome-menus werden verarbeitet ... Fehler traten auf beim Bearbeiten von: changers_software_v274-1_amd64.deb
Vor allem diese Zeile machte mich stutzig:
/var/lib/dpkg/tmp.ci/postrm: Zeile 11: return: can only `return' from a function or sourced script
.deb-Pakete sind ja eigentlich auch eine Art Archive wie .zip oder .tar.gz. In diesen findet man 2 Ordner: DEBIAN und usr.Die beiden post-removal Skripts in .deb-Paketen heissen postrm und postinst. Man findet sie im DEBIAN-Ordner, wenn man das .deb-Paket man mit einem Archiv-Programm aufruft(z.B. File-Roller). postinst enthält in Zeile 18 und postrm in Zeile 11 (s.o.) tatsächlich ein return, was da anscheinend nicht ‚reingehört. Nun war das Problem, dass bei jeder neuen Installation, er die Skripte aus dem temporären Verzeichniss tmp.ci startet. Nach ein bisschen googeln stieß ich auf diesen Beitrag von bed von zockertown.de. Also habe ich in /var/lib/dpkg/info in den beiden Dateien die return-Zeile gelöst und dann ein
sudo apt-get install -f
ausgeführt. Das hat die Software dann runtergeschmießen. Ich habe den Support mal angeschrieben(ich hatte sie vorher auch schon über Twitter um Hilfe gebeten aber keine Antwort erhalten…), vielleicht fixen sie das ja mal. Bis dahin muss ich meine Daten wohl per Windows hochladen. Mein Solarpanel ist heute angekommen, unboxing folgt;-)
Sie haben allerdings beim Schreiben dieses Blog-Eintrags auf meine E-Mails geantwortet, mal sehen was das wird:-)
Ich hab zwei Skripte geschrieben um Debian Pakete aus- und einzupacken:
dpkg-unpack:
https://github.com/ikem-krueger/dpkg-deb-tools/blob/master/dpkg-unpack
dpkg-build:
https://github.com/ikem-krueger/dpkg-deb-tools/blob/master/dpkg-build
Ich benutze sie regelmässig um Sachen wie die hier zu fixen.