Wieso muss mit apt-get upgrade mein vollständiger Upgrade-Prozess fehlschlagen, wenn nur eine einzige Abhängigkeit nicht mehr korrekt aufgelöst werden kann? Apt-get, das «ich-mache-jetzt-auf-stur» Tool.

Wieso muss ich hier mit der Hau-Drauf Methode das Paket libfarstream-0.2.5-sipe aktualisieren (das ist ein Teilstück für mein Pidgin » Lync SIPE-Connection), wenn mir apt-get doch auch einfach mal alle anderen Pakete updaten könnte und nur das Korrupte (und dessen Abhängigkeiten) liegen lassen?

In allen Fällen wäre es angenehm, apt-get würde trotzdem alle anderen Programme updaten. Also mein apt-get arbeitet nach dem Slogan «Entweder Alles, oder Nichts». Klemmt es einmal, geht gar nichts mehr. Mäh!

The following packages were automatically installed and are no longer required:
libfarstream-0.2-2-sipe libgplugin-gtk-dev libgplugin-gtk0
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
libfarstream-0.2-5-sipe
0 upgraded, 1 newly installed, 0 to remove and 49 not upgraded.
2 not fully installed or removed.
Need to get 0 B/192 kB of archives.
After this operation, 727 kB of additional disk space will be used.
(Reading database ... 238955 files and directories currently installed.)
Preparing to unpack .../libfarstream-0.2-5-sipe_0.2.8+sipe+collab-0.3007+201603210649~ubuntu14.04.1_amd64.deb ...
Unpacking libfarstream-0.2-5-sipe:amd64 (0.2.8+sipe+collab-0.3007+201603210649~ubuntu14.04.1) ...
dpkg: error processing archive /var/cache/apt/archives/libfarstream-0.2-5-sipe_0.2.8+sipe+collab-0.3007+201603210649~ubuntu14.04.1_amd64.deb (--unpack):
trying to overwrite '/opt/gstreamer1.4/lib/x86_64-linux-gnu/gstreamer-1.0/libfsrtpxdata.so', which is also in package libfarstream-0.2-2-sipe:amd64 0.2.7~sipe+collab-0.2991+201602270832~ubuntu14.04.1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/libfarstream-0.2-5-sipe_0.2.8+sipe+collab-0.3007+201603210649~ubuntu14.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Diese Klemmerei ist mir übrigens schon bei der Verwendung von PPAs augefallen: Sobald auch nur eine PPA im Internet nicht mehr erreichbar ist, bleibt der komplette apt-get update Prozess hängen. Apt-get fragt mich nicht einmal, ob ich trotzdem anhand der restlichen Repositories updaten möchte. Eine Option, die für Linux-Anfänger vorhanden sein sollte. Woher sollen Linux-Newcomer wissen, wie man das Problem löst?

Für meinen Fall hier habe ich nach einer Hammer-Methode gegoogelt, alles andere war mir zu blöd. Ich konnte apt-get -f install eintippen so oft ich wollte, bringt nichts. Das –force-overwrite hat danach schon einmal viel bewirkt:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libfarstream-0.2-5-sipe_0.2.8+sipe+collab-0.3007+201603210649~ubuntu14.04.1_amd64.deb

Das System könnte durch das –force-overwrite kaputt gehen.  Mir egal, keinen Nerv mehr 😉  Es soll schlicht und einfach nicht mehr meine anderen Upgrades blockieren.

Leider hat apt-get upgrade danach immer noch nicht funktioniert, ich musste zusätzlich das alte libfarstream-0.2-2-sipe Paket mit einem extra autoremove weglöschen.

sudo apt-get autoremove libfarstream-0.2-2-sipe

Jetzt funktioniert der apt-get upgrade wieder, mein Elementary 0.3 Notebook kann sich wieder aktualisieren.

Fazit: Ich finde es schon ein sehr schade, ist die Steuerung mit apt-get so sperrig. Ich vermisse zypper, das kenne ich von den SUSE Servern, zypper ist weniger staksig als apt-get.

Kategorien: LinuxUbuntu

Schroeffu

Der Autor ist Schweizer, verheiratet, seit November 2015 zu seiner liebevollen Frau nach Braunschweig, Deutschland, ausgewandert. Als Vater von inzwischen zwei Kindern kommt das Bloggen hoffentlich nicht zu kurz.

5 Kommentare

Mehr tux aus Braunschweig · 21. März 2016 um 13:25

Als ich mich noch mit Linux rumgeärgert habe, ist mir vor allem yum positiv in Erinnerung geblieben. Das hat auch nie Probleme gemacht und brachte den grandiosen Befehl „yum history“ mit. Den vermisse ich unter BSD doch ein wenig.

ekkehard · 22. März 2016 um 00:47

Stimmt!
Habe das immer so hingenommen und mich geärgert. So tief stecke ich nicht drin, obwohl ich seit nunmehr fünf Jahren „Linuxer“ bin.

Aynos · 23. März 2016 um 10:55

Da kann ich mir nicht verkneifen zu erwähnen, das lesen und verstehen von apt-get Ausgaben manchmal hilfreich sein könnte:
In Zeilen 1-3 kommt u.a. der Hinweis, dass libfarstream-0.2-2 nicht mehr benötigt sei und per apt-get autoremove entfernt werden könnte.
In Zeile 14 wird libfarstream-0.2-5 nicht installiert, weil gleichlautende Dateien von 0.2-2 überschrieben würden.
=> Vorm upgrade ein apt-get autoremove wie von apt vorgeschlagen hätte vermutlich schon geholfen, ist im screenshot sogar farbig markiert… 😉

Eine oft hilfreiche Methode für ähnliche Probleme kann auch sein, ein störendes Paket vorübergehend auf ‚hold‘ zu setzen und nach Upgrade den hold zu entfernen
apt-mark hold $Paket1 $Paket2
apt-get upgrade
apt-mark unhold $Paket1 $Paket2

    Schroeffu · 24. März 2016 um 09:36

    Hey Aynos,

    na wäre es so einfach gewesen hätte ich mich doch nicht derart aufgeret 🙂 Ein Autoremove wollte auch nicht klappen (erst nach dem force overwrite), leider habe ich die History nimmer mehr.

    Den Tipp mit dem Hold werde ich das nächste mal garantiert ausprobieren, danke!

Angela Hoffmann · 8. April 2016 um 20:23

also bei mir zickt schon geraume weile das Zypperdings, aber dann mache ich manuell die Updates die ich möchte, und die i ch nicht will sperre ich in der Liste direkt, als quereinsteiger mit wenig Zeit bin i ch froh dass man nicht immer auf die Console muss 😉 Mal sehen wie lange das noch klappt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.