c't 13/2017
S. 44
Test
Debian 9

Vaterkrake

Debian 9 auf der Zielgeraden

Rund eine Woche nach Erscheinen dieser c’t-Ausgabe soll die neunte Ausgabe von Debian veröffentlicht werden – sie heißt Stretch wie der Krake aus Toy Story. Wir haben die Neuerungen der nahezu fertiggestellten Ausgabe erkundet.

Debian ist eine der großen Linux-Distributionen und bildet die Basis für viele Ableitungen, deren bekannteste Ubuntu ist. Seit jeher gibt es drei Hauptentwicklungszweige: Stable, Testing und Unstable. Viele Ableitungen schöpfen ihre Bestandteile aus diversen Zweigen, um stets eine moderne Softwareumgebung anzubieten. Die Debian-Entwickler sind konservativer und bauen neue Releases nur aus Paketen, die den Ansprüchen des Stable-Zweigs genügen. Dadurch haftet Debian der Ruf an, veraltet zu sein.

Wer ein wohl abgestimmtes System mit umfassendem Sicherheits-Support schätzt, etwa als Serverbetreiber, den stört das weniger: Die enthaltene Software ist ausgereift. Bis zum Erscheinen der nächsten Version versorgt das Security-Team alle Pakete mit notwendigen Sicherheitspatches – einige wenige Pakete sind allerdings explizit ausgenommen. Dann und wann fassen Point Releases aktuelle Patches und wichtige Korrekturen zu einem neuen Installationsmedium zusammen. Versions-Updates, etwa für den Kernel, finden normalerweise keine statt, mitunter halten dort allerdings neue Treiber oder Funktionen Einzug.

Insgesamt liefert das Projekt die Distribution für zehn verschiedene Prozessorarchitekturen, ARM unter anderem als Basis für den Raspberry Pi. Mit Debian 9 gibt es eine wichtige Änderung: Die i386-Architektur für 32-Bit-x86-PCs erwartet jetzt einen i686-Prozessor (ab Pentium Pro); i586-CPUs werden mit der Ausnahme von AMDs Geode nicht mehr unterstützt. Für Stretch muss eine CPU laut Release Notes die Flags FPU, TSC, CX8 und CMOV kennen. Wie gehabt gibt es mehrere Varianten der Installationsmedien, etwa „Netinst“ mit weniger als 300 MByte bis hin zu einem Satz für mehrere Blu-rays.

Nach wie vor versprüht der Installer spröden Charme: Das Einrichten eines eigenen komplexeren Partitionsschemas bleibt eine Aufgabe für Wissenschaftler.

Letztlich laden alle Installationsmedien je kleiner sie ausfallen umso mehr Pakete aus dem Netz nach. Anders als bei Ubuntu entscheidet man sich nicht durch das Medium für eine Desktop-Umgebung, etwa Gnome, Xfce oder KDE, sondern wird gefragt. Die Installationsaufgabe erledigt ein und dasselbe Programm, das zur Darstellung wahlweise nur die Textkonsole bemüht oder grafisch bedienbar ist. Es gibt zwar kombinierte Live- und Installationsmedien, aber ohne Installationsoption aus dem laufenden Live-System heraus. Der Installer richtet jetzt auch 64-Bit-Kernel auf 32-Bit-UEFI ein. Secure-Boot hat es nicht in die erste Stretch-Fassung geschafft.

Versionsporno

Wer Debian auf dem Desktop einsetzt, erhält Gnome 3.22, KDE 5.8, Xfce 4.12 und Mate 1.16. LibreOffice steckt in Version 5.2 und Evolution kommt in Version 3.22 daher. Vim hüpft von Version 7 auf 8, Inkscape von 0.48 auf 0.91, die GNU Compiler Collection von 4.9 auf 6.3 und GnuPG von 1.4 auf 2.1.

Die Chromium- sowie die ESR-Varianten von Firefox und Thunderbird wollen die Entwickler bei Erscheinen einer neuen Version als Update für Stretch bauen – so will das Team zeitnah Sicherheitslücken in den zum Surfen empfohlenen Browsern schließen und weicht damit von der eigentlichen Strategie ab, keine neuen Versionen für ein Release zu veröffentlichen. Andere in Stretch enthaltene Browser-Engines bekommen allerdings überhaupt keine Sicherheitsupdates. Explizit ausgenommen von solcherart Updates bleiben auch libv8-3.14 und nodejs.

Für Serverbetreiber bedeutet Debian 9 diverse Versionssprünge: Samba von 4.1 auf 4.5, Postfix von 2.11 auf 3.1, PHP von 5.6 auf 7.0, Nginx von 1.6 auf 1.10 und PostgreSQL von 9.4 auf 9.6. MySQL haben die Debian-Entwickler zugunsten von MariaDB aus der Distribution entfernt (gleich mehr dazu). Allen Nutzern, egal ob Desktop oder Server, kommt ein deutlich neuerer Kernel zugute: 4.9 statt bisher 3.16. Das gleiche gilt für OpenSSH von 6.7 auf 7.4 und OpenJDK von 7 auf 8.

Unterm Strich bestätigt all das Versionsfetischisten in ihren Vorbehalten: Die Sprünge mögen groß scheinen, aber die Versionen bleiben hinter den aktuellen Projekten teils deutlich zurück. Wer auf 3D-Performance Wert legt, kommt vermutlich nicht ohne die Pakete aus dem Backports-Zweig klar, insbesondere für modernere Kernel mit Open-Source-Treibern für aktuelle Grafikkarten. Letztlich wird man deshalb für den langfristigen Einsatz auf dem Desktop eher die Testing-Variante der Distribution auswählen und erreicht damit den Stand eines aktuellen Ubuntu.

Gnome ist der Standard bei einer Desktop-Installation von Debian, muss es aber nicht sein: Der Installer lässt die Wahl und sogar die Parallelinstallation zusätzlicher Umgebungen wie KDE Plasma zu.

Grundlegende Neuerungen wie die Einführung von Systemd hat Debian bereits in Version 8 gemeistert; Ubuntus Upstart fliegt in Stretch raus, wer partout systemd meiden möchte, kann das über das Meta-Paket init tun. Aktuelle Änderungen betreffen die Benennung von Netzwerkschnittstellen: Sie orientieren sich an den von BIOS/UEFI-Firmware vergebenen Nummern und heißen jetzt nicht mehr eth0, sondern ens0 oder enp1s1 respektive statt wlan0 wlp3s0. Diese Änderung tritt allerdings nur bei neu installierten Systemen zutage; bei einem Upgrade von Jessie auf Stretch bleiben die bisherigen udev-Regeln zur Benennung und damit die Namen aktiv.

Weil die Entwicklung von MariaDB während der Entstehung von Stretch vor allem aus Sicht des Security-Teams deutlich transparenter als die von MySQL verlief, ersetzt dieses Paket die bisherigen MySQL-Pakete beim Upgrade. Wer diese Änderung nicht mitmachen will, kann vor dem Upgrade auf Stretch MySQL aus dem Unstable-Zweig installieren und kommt so um die Umstellung herum.

Ein Wechsel zwischen MariaDB und MySQL sowie der Rückgang auf ältere Versionen ist wegen inkompatibler Binärdateiformate und leicht divergierender Features selten direkt, sondern meist nur mit zeitaufwendigem Einspielen von Dumps und Codeänderungen möglich. Unter ct.de/yw7f finden Sie weiterführende Dokumente zum Wechsel von MySQL zu MariaDB. Ob es dauerhaft bei dem Wechsel bleibt, steht in den Sternen. In letzter Zeit hat sich Oracle deutlich mehr Mühe gegeben, MySQL-Änderungen und -Sicherheitspatches zu dokumentieren.

Mit Stretch führen die Entwickler einen neuen Dienst ein, um die Paket-Repositories zugänglich zu machen: deb.debian.org wird als Server eingetragen und die Paketverwaltung APT kann dort per DNS nachschlagen, wo die Pakete erhältlich sind – der eigentliche Download erfolgt dann derzeit aus von Fastly und Amazon gesponserten Content Delivery Networks (CDNs). Damit sollten gelegentliche Aussetzer einzelner Paketquellen kaum noch auftreten.

Upgrade-Erfahrungen

Den Umstieg von Jessie auf Stretch haben wir an diversen Servern und einigen Workstations durchgespielt – nach dem Freeze, aber noch einige Wochen vor dem Release der endgültigen Fassung. Die dabei gesammelten Erfahrungen sind durchweg positiv. Selbst Systeme mit schrittweisen Upgrades über mehrere Generationen hinweg, etwa von Squeeze und Wheezy (Debian 6 und 7), versahen ohne große Eingriffe nach einigen Reboots unter der neuen Version treu ergeben wieder ihren Dienst. Bei manchen Paketen muss man bei solchen Sprüngen allerdings mit umfangreichen Änderungen an Konfigurationsdateien rechnen.

Die Release Notes raten für Upgrades auf Stretch dazu, externe Paketquellen zu entfernen und damit zu rechnen, dass Pakete entfernt werden. Wir hatten im Fall älterer samba-sernet-Pakete Glück, sie liefen unter Debian 9 weiterhin ohne Murren – verlassen kann man sich darauf aber nicht. Beim Upgrade sollte man nach dem Umstellen der Paketquellen auf Stretch üblicherweise zunächst mit apt-get update; apt-get upgrade einen ersten Umstiegsschritt unternehmen, bevor man mit apt-get dist-upgrade den Umstieg vervollständigt.

In Stretch sind die Binärdateien der Pakete standardmäßig als „position independent executables“ (PIE) übersetzt. Das erhöht die Sicherheit erheblich. Grundsätzlich ist es eine gute Idee, vor dem Upgrade einer Debian-Installation das letzte verfügbare Point Release zu installieren. Bei Stretch ist das um so wichtiger: Denn in jedem Kernel älter als 3.16.43, also allen Kernel-Versionen in Debian 8 vor 8.8, steckt ein Fehler, der das Ausführen auf diese Weise übersetzter Programme unter Umständen mit einem „segmentation fault“ verhindert. Also: erst auf 8.8 upgraden und rebooten!

Vorsichtig sollte man beim Upgrade von Maschinen sein, wenn diese nur per SSH zu erreichen sind: OpenSSH 7 deaktiviert standardmäßig einige ältere Verschlüsselungsverfahren und das SSH1-Protokoll. Generell ist es eine gute Idee, die Release Notes zur Veröffentlichung querzulesen – unwahrscheinlich, aber trotz fortgeschrittener Vorbereitung der Veröffentlichung möglich, dass wir einen für Sie entscheidenden Hinweis nicht erwähnt haben. (ps@ct.de)