Neues Raspbian Stetch Image auf Basis von Debian 9 – Wichtige Details zu den Änderungen

Am 16. August hat die Raspberry Pi Foundation das Raspbian Image auf „Stretch“ aktualisiert, Basis für das Betriebssystem ist nun Debian 9. Neben einigen zusätzlichen Software Neuerungen und Aktualisierungen hat sich vor allem im Bezug auf Projekte mit der Basis Apache, PHP und MySQL einiges geändert. Da die meisten meiner Tutorials auf Jessie bzw. dem Vorgänger Wheezy basieren werde ich wo notwendig Stück für Stück aktualisieren, gerne dürft ihr Fragen / Hinweiße in den jeweiligen Kommentaren hinterlassen. Details zu Stretch nun in diesem Post.

Inhaltsverzeichnis

Änderungen in Raspbian Stretch

Hier habe ich euch die wichtigsten Änderungen zusammengefasst.

  • Basis ist nun Debian 9 (Stretch),vorher Debian 8 (Jessie)
  • Aktueller Kernel und Firmware wurden integriert
  • Die MySQL Variante MariaDB ersetzt MySQL
  • Die Namen der Netzwerinterfaces haben sich geändert (MAC Adresse anstelle ethX – ethY)
  • PHP ist nun in Version 7.0 enthalten
  • Chromium Browser ist nun vorinstalliert (60)
  • Sonic Pi ist nun in der Version 3.0.1, RealVNC in der Version 6.1.1 und NodeRED in der Version 0.17.4 enthalten
  • Einige Desktop Anwendungen fragen nun nach einem Passwort (sudo)
  • Neue WLAN Firmware zum Fixen der Broadpwn Sicherheitslücke
  • Weitere kleinere Anpassungen und Fixes

Hier noch die offiziellen Release Notes Debian 9 und die Release Notes des Raspbian Image

Wichtig! Im Aktuellen Stretch Image solltet ihr als erstes ein update & upgrade durchführen da im Image noch einige Bugs enthalten sind die durch ein Update gefixt werden.

Wo kann das „alte“ Raspbian Jessie Image runtergeladen werden?

Alte Versionen der Raspbian Images können ebenfalls von raspberrypi.org heruntergeladen werden.

Neues Namensschema für Netzwerkschnittstellen in Stretch

Das Namensschema für die Netzwerkschnittstellen wurde geändert, bisher wurden alle vorhandenen Netzwerkkarten durchgearbeitet und der ersten gefundenen der Name eth0 vergeben usw. das neue Schema ist nun wie ich finde recht kompliziert aufgebaut. Es gibt verschiedene Schemas welche in der Policy Datei festgelegt sind.

<Typ des Interfaces><verwendetes Namensschemas><Name nach Namensschema>

Konkret ist das bei den Standard Interfaces von Raspbian

<Typ des Interfaces><Schema x><MAC Adresse>

  • Die ersten zwei Buchstaben spiegeln den Typ der Karte wieder
    • en = Ethernet
    • sl = Serial Line
    • wl = WLAN
    • ww = WAN
  • Typ des Namensschemas, bei uns ist es immer x für die Mac Adresse
  • Als Name, da Schema x, wird dann die MAC Adresse der Netzwerkkarte angehängt

Beispiel für Rasperry Pi OnBoard  Ethernet: enxb827eb47fdfd

Altes Namensschema für Netzwerkinterfaces verwenden

Wer gerne wieder das alte Namensschema für seine Netzwerkschnittstellen verwenden möchte anstelle das Namensschema auf MAC-Address Basis kann das recht einfach erledigen. Folgender Befehl ändert die Richtlinie, durch Anlage einer leeren Regel (link auf /dev/null) wird das alte Schema verwendet.

In Stretch Geänderte PHP Version und MySQL Variante

Neben vielen kleineren Versions-Sprüngen und Änderungen an ehr uninteressanten Paketen hat sich an den für viele RasPi Projekte wichtigen Paketen PHP und MySQL folgendes geändert.

MariaDB in Raspbian

Die MySQL Variante MariaDB ist im Kern auch ein MySQL, die ursprüngliche Code Basis die selbe und die SQL-Syntax unterscheidet sich nicht, es gibt lediglich einige spezielle Funktionen die nur mit MariaDB Funktionieren. Ansonnten gibt es noch einige Unterschiede in den bereichen Hochverfügbarkeit, Security und Performance was aber ehr Features und Themen für den Business und Kommerziellen Einsatz sind und uns bei RasPi Projekte ehr weniger berühren.

  • Sowohl der Standard MySQL Client als auch der MySQL Server wurde von MySQL auf die MariaDB Variante geändert
    • MariaDB ServerVersion 10.1
    • MariaDB Client 10.1

Wer nun via APT den MySQL Server installiert wird daher immer die MariaDB erhalten. Hierbei gilt es zu berücksichtigen das MariaDB 10 ein neues Format mit sich bringt und die Datenbankdateien nicht abwärts-kompatibel zu älteren MySQL / MariaDB Versionen sind.

Installation der MariaDB unter Stretch

oder übergangsweiße noch mit

Einen Grund für MySQL in der Version 5.5 oder 5.7 gibts es aus meiner Sicht nicht.

Neue PHP Version in Raspbian Stretch

Ein aus meiner Sicht längst überfälliger Schritt ist die Aktualisierung von PHP auf Version 7, der Release liegt bereits über 2 Jahre zurück. Die neue Version bringt einen erheblichen Geschwindigkeitsvorteil, allerdings sind vor allem bei älterem Code einige Anpassungen notwendig. Einen passenden Artikel zu den Änderungen für PHP Entwickler findet sich auf der php.net Seite.

Die Installation von Apache mit php7 ist auch recht einfach

Wer weiterhin PHP5.6 verwenden möchte (oder muss) kann folgende Befehle verwenden

Wichtig! PHP 5.6 wird im nächsten Jahr langsam aus den Repositories verschwinden, bemüht euch um eine Migration auf PHP 7.

Raspbian Jessie auf Stretch aktualisieren

Wichtig!
Erstellt euch vor dem Update unbedingt eine Sicherung eures System und ggf. der Daten.

Für das Update solltet ihr mindestens 5GB auf eurer SD-Karte frei haben, das Download der einzelnen Pakete war bei mir ca. 1,2GB groß. Wer seine Projekte und Software recht einfach wieder einrichten kann sollte eine zweite SD-Karte besorgen und das Projekt mit Stretch auf dieser neu aufbauen.

In diesem Teil des Artikels zeige ich euch wie ihr von eurer vorhandenen Raspbian Jessie Installation auf  Raspbian Stretch aktualisieren könnt. Das Update solltet ihr am Besten nicht Remote durchführen sondern mit einer Tastatur / Maus und Bildschirm. Falls ihr nicht wisst ob ihr überhaupt noch auf Jessie seit, kontrolliert das mit folgendem Befehl. Jessie ist der Codename und das Release ist 8.

release anzeigen raspberry pi

Bevor wir anfangen sollten wir erst mal unsere aktuellen Pakete auf den letzten für Jessie verfügbaren Stand aktualisieren

Wir zwingen unser System noch auch zurückgehaltene Pakete zu aktualisieren, eine aktuelle Firmware macht ebenfalls Sinn.

Um nun die Paketquelle noch von Raspbian Jessie auf Raspbian Stretch umzustellen müssen wir via Editor die Datei sources.list anpassen

Wir müssen innerhalb der Datei alle vorkommenden „jessie“ mit „stretch“ ersetzen.

Findet

Ersetzt (jessie mit stretch)

stretch sources list

Speichert durch das drücken von Ctrl + X dann Y und Enter.

Selbes vorgehen müssen wir auch bei der Datei /etc/apt/sources.list.d/raspi.list durchführen. Öffnet die Datei wieder im Editor Nano:

Wir müssen innerhalb der Datei wieder alle vorkommenden „jessie“ mit „stretch“ ersetzen.

Findet

Ersetzt (jessie mit stretch)

stretch raspi sources

Speichert durch das drücken von Ctrl + X dann Y und Enter.

Da wir nun die quellen angepasst haben können wir mit dem Update auf Stretch starten. Das Update kann mehrere Stunden dauern! Brecht es nicht ab

Schaut ab und an nach dem Update, es kann vorkommen das bestimmte Installationen trotz des Parameters -y mit einem Y + Enter (J + Enter bei deutschem System) bestätigt werden müssen. Ich musste auch einen Change Log lesen (runter scrollen und mit q bestätigen).

Nach dem eigentlichen Update entfernen wir noch die als nicht mehr benötigten Pakete (durch Änderungen in den Abhängigkeiten können nicht mehr benötigte entfernt werden).

Wir putzen noch den Cache von alten nutzlosen Paketen mit autoclean.

Dann rebooten wir unseren RasPi

Zum Schluss solltet ihr noch mal checken das wirklich alles aktuell ist

Euer Raspberry Pi mit installiertem Raspbian wurde nun von Jessie auf Stretch aktualisiert. Kontrolliert das gerne mit:

lsb release nach raspbian update

Prüft ob eure Anwendungen noch wie gewohnt funktionieren. Viel Spaß!