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.
1 2 |
sudo apt-get update sudo apt-get upgrade -y |
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.
1 |
sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules |
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
1 2 |
sudo apt-get install default-mysql-server sudo mysql_secure_installation |
oder übergangsweiße noch mit
1 2 |
sudo apt-get install mysql-server sudo mysql_secure_installation |
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
1 |
sudp apt-get install apache2 php7.0 libapache2-mod-php7.0 php7.0-mysql |
Wer weiterhin PHP5.6 verwenden möchte (oder muss) kann folgende Befehle verwenden
1 |
apt install php5 php5-pgsql php5-gd php5-curl php5-cli apache2 |
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.
1 |
lsb_release -a |
Bevor wir anfangen sollten wir erst mal unsere aktuellen Pakete auf den letzten für Jessie verfügbaren Stand aktualisieren
1 2 |
sudo apt-get update sudo apt-get upgrade -y |
Wir zwingen unser System noch auch zurückgehaltene Pakete zu aktualisieren, eine aktuelle Firmware macht ebenfalls Sinn.
1 2 |
sudo apt-get dist-upgrade -y sudo rpi-update |
Um nun die Paketquelle noch von Raspbian Jessie auf Raspbian Stretch umzustellen müssen wir via Editor die Datei sources.list anpassen
1 |
sudo nano /etc/apt/sources.list |
Wir müssen innerhalb der Datei alle vorkommenden „jessie“ mit „stretch“ ersetzen.
Findet
1 |
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi |
Ersetzt (jessie mit stretch)
1 |
deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi |
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:
1 |
sudo nano /etc/apt/sources.list.d/raspi.list |
Wir müssen innerhalb der Datei wieder alle vorkommenden „jessie“ mit „stretch“ ersetzen.
Findet
1 2 |
deb http://archive.raspberrypi.org/debian jessie main ui |
Ersetzt (jessie mit stretch)
1 |
deb http://archive.raspberrypi.org/debian stretch main ui |
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
1 2 |
sudo apt-get update sudo apt-get dist-upgrade -y |
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).
1 |
sudo apt-get autoremove -y |
Wir putzen noch den Cache von alten nutzlosen Paketen mit autoclean.
1 |
sudo apt-get autoclean |
Dann rebooten wir unseren RasPi
1 |
sudo reboot |
Zum Schluss solltet ihr noch mal checken das wirklich alles aktuell ist
1 2 3 |
sudo apt-get update sudo apt-get upgrade -y sudo rpi-update |
Euer Raspberry Pi mit installiertem Raspbian wurde nun von Jessie auf Stretch aktualisiert. Kontrolliert das gerne mit:
1 |
lsb_release -a |
Prüft ob eure Anwendungen noch wie gewohnt funktionieren. Viel Spaß!