Fixing unmerged python-exec: Gentoo Linux und Portage nach emerge -C python-exec reparieren

Das Problem:

Beim Versuch konfliktäre Abhängigkeiten zwischen Paketen im Portage Paketmanager aufzulösen, habe ich python-exec mittels emerge -C von meinem Gentoo-Linux-System entfernt. Hinterher ist man oftmals schlauer… ;-). Anschließend waren dummerweise auf dem System weder portage noch Python verfügbar. Noch schlimmer: Tools wie emerge, revdep-rebuild waren ebenfalls weg. Somit konnte ich weder python-exec noch portage mittels der Gentoo Standardtools einfach wieder mergen und das System fixen. Das dachte ich zumindest… 😉

Die Lösung:

Meine initiale Suche führte mich auf die „offizielle“ Seite des Gentoo Projekts [3]. Diese beschreibt, wie man generell ein nicht funktionierendes Portage manuell reparieren kann. Zwar finden sich auf dieser Seite viele generische Hinweise, ich rate allerdings in diesem Fall davon ab, die dort genannten Schritte durchzuführen. Denn diese beziehen sich nicht auf das spezielle oben genannte Problem (Auslöser: emerge -C python-exec). D.h. sie „verschlimmbessern“ unter Umständen sogar die Situation. Ich habe dies dummerweies getan, kontraproduktive Schritte ausgeführt und musste zahlreiche Schleifen/Umwege drehen, um Portage wieder lauffähig zu bekommen.

Danach bin ich bin ich in den Gentoo Foren (Quellen [1], [2]) auf die nachfolgende Lösung gestoßen. Die Lösung in Kürze: Trotz eines emerge -C verbleiben die entsprechenden Binaries für emerge etc. auf dem System. Diese befinden sich bspw. unter /usr/lib/python-exec/python2.7/emerge . Sucht einfach mal dort! Hinweis: Ggf. müsst Ihr je nach Python Version den Pfad anpassen.

Anschließend kann man mittels der noch vorhanden Werkzeuge einfach python-exec wiederherstellen. Portage Dienste und Python sollten damit wieder funktionieren:

/usr/lib/python-exec/python2.7/emerge -1 dev-lang/python-exec
Hoffentlich konnte ich Euch damit etwas Zeit sparen. Solltet Ihr in die gleiche Falle wie ich gelaufen haben und hängen geblieben sein: Meldet Euch einfach, ggf. kann ich weiterhelfen! Wie immer gilt: Alle Hinweise/Ratschläge in diesem Blog erfolgen ohne Gewähr. Feedback ist willkommen!

Quellen:
[1]: https://forums.gentoo.org/viewtopic-p-7719268.html?sid=6874eea7b7dd5c57627428e9f8a1dfb3
[2]: https://forums.gentoo.org/viewtopic-p-7648990.html#7648990
[3]: https://wiki.gentoo.org/wiki/Project:Portage/Fixing_broken_portage

Wieder aktuell mit der Veröffentlichung von iOS 9: Nicht ausreichend Speicher auf iOS-Device vorhanden – Limit kann mithilfe von iTunes umgangen werden.

Zwar ist das Update auf iOS9  weniger speicherintensiv als noch das iOS8-Update (siehe http://www.macerkopf.de/2015/06/09/app-thinning-ios9-update-gb/). Hat man bspw. iOS 8.4.1 als Grundlage, braucht man nur noch ungefähr 1,8 GByte freien Platz auf dem Gerät, wenn man ein Over-the-Air-Update mit der Downloaddatei (Größe ca. 1GB) macht. Bei nahezu voller Belegung des Speicherplatz (insb. auf 16GB Devices) können allerdings auch weiterhin entsprechende Fehlermeldungen („zu wenig Speicherplatz“) und Probleme beim Over-the-Air-Update direkt am iPhone/iPad auftreten. Im nachfolgenden Blogpost hatte ich dieses Thema bereits schon einmal aufgegriffen. Damals im Kontext des iOS 8.0 Updates, welches deutlich mehr Speicherplatz benötigt hatte. Die grundsätzlichen Aussagen gelten auch weiterhin:

https://www.doktorlatte.de/ios-8-0-update-braucht-ca-6gb-freien-speicher/

Die Kurzform: Sollte das over-the-air-Update von iOS 9 auf Eurem Gerät mangels Speicherplatz fehlschlagen, dann stellt das Update via iTunes Software auf Eurem Windows- bzw. Mac-Rechner einen Workaround dar. Denn hierbei wird, vereinfacht ausgedrückt, die neue iOS Version nicht auf Eurem iPhone oder iPad sondern auf dem lokalen Rechner entpackt.

Update: Danke für die Hinweise zum verringerten Speicherbedarf von iOS9 gegenüber iOS8 (@Olaf, der mal wieder der Schnellere war, und Chris). Ich habe die Überschrift entsprechend angepasst.