Linux: Übergang zu GCC 5 in Debian Unstable noch problematisch

Ferdinand Thommes
30 Kommentare
Linux: Übergang zu GCC 5 in Debian Unstable noch problematisch
Bild: flickr.com | CC BY 2.0

Debian durchläuft derzeit eine der größten Umwälzungen der letzten Jahre. Die sogenannte Transition wird Debian Unstable noch Wochen in Atem halten. Dabei ist nicht die GNU-Compiler Collection GCC das Problem, sondern die Bibliothek libstdc++6.

Diese Bibliothek ist die GNU-Implementierung der Standard-C++-Bibliothek und enthält eine Laufzeitbibliothek für C++-Programme, die mit dem GNU-Compiler übersetzt wurden. Da sich durch die neue Version ABI-Inkompatibilitäten bei Programmen ergeben, die in C++ geschrieben wurden und mit der GCC in einer älteren Version kompiliert wurden, musste eine neue ABI (Application Binary Interface) erstellt werden. Dies bedeutet wiederum, dass alle betroffenen Pakete neu für GCC 5 gebaut werden müssen. Dass diese Liste sehr lang ist, belegt der Transition-Tracker bei Debian.

Der Vorteil dabei ist, dass GCC 5 jetzt eine stabile libcxx11 ABI vorweisen kann und C++11 als voll unterstützt gilt. Vor GCC 5 war diese Unterstützung eher experimentell. Für Endanwender, die auf Debian Unstable setzen bedeutet dies, dass Dist-Upgrades derzeit nicht ratsam sind. Das System kann dadurch so aus dem Tritt kommen, dass die Installation einen Neustart nicht überlebt. Dabei werden Pakete entfernt, die essentiell sind und während der Transition nicht neu installiert werden können.

Wer das Malheur nach einem Dist-Upgrade, aber vor einem Neustart bemerkt, kann sich bei Debian-Snapshots bedienen und auf einen Stand zurückfahren, der vor der Transition liegt. Dazu müssen die Quellen editiert werden. Die bisher benutzte Zeile für Debian Unstable wird auskommentiert, dafür kommt die Zeile deb http://snapshot.debian.org/archive/debian/20150731T094226Z/ unstable main contrib non-free hinzu. Wer bisher contrib und nonfree nicht verwendet hat, kann diese beiden Attribute weglassen. Daraufhin sollte der Befehl apt-get update && apt-get dist-upgrade das System wieder in einen nutzbaren Zustand versetzen. Ein Dist-Upgrade sollte erst wieder erfolgen, wenn die Distribution das Ende der Transition bekannt gibt.

Den gleichen Schritt zu GCC 5 vollzieht gerade in kleinerem Rahmen Canonical für den Entwicklungszweig zu Ubuntu Touch 15.10. Das demnächst zu erwartende OTA-6-Update wird daher ebenfalls auf GCC 5 als Standard setzen.