Python-Tk: Ein Neofetch-GUI selbst schreiben Teil 11
Der 11. Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Der 11. Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Nach meiner Analyse ist dies eine durchschnittliche Beschreibung für einen Artikel auf GNU/Linux.ch.


Ein Erfahrungsbericht über den Umstieg von PiOS Lite auf Ubuntu Server und eine einfache Anleitung zur Nutzung von Docker.


Die Kampagne erhielt eine neue Unterseite, um aktuelle Informationen aus dem Freien Bildungsbereich abzubilden.


Der Kolumnist nutzte ausserordentliche Projekttage dazu, einer Klasse mal eine Einführung in Linux zu bieten. Wie es ihm und der Klasse dabei erging, lest ihr hier.


In einem ersten monatlichen Newsletter informiert das Projektteam des Ladybird-Browsers über finanzielle und technische Fortschritte.


Vor einiger Zeit habe ich beschlossen eine Serie von Artikeln zum Thema Nextcloud auf dem RasPi auf meinem Blog intux.de zu veröffentlichen. Ziel ist es, eine eigene Cloud zu erstellen, die produktiv nutzbar ist. Diese soll später über das Internet erreichbar sein.
Um langfristig sicherzustellen, dass alles funktioniert, empfehle ich, die neueste Hardware zu verwenden, wie den Raspberry Pi 5. Allerdings würde hier auch ein Einplatinencomputer der vorherigen Generation mit 4GB RAM ausreichen.
Diese kleine Anleitung soll helfen, das Projekt Nextcloud auf dem Raspberry Pi nicht nur umzusetzen, sondern auch besser zu verstehen. Der Schwerpunkt liegt dabei auf der Software und der Konfiguration. So können später auftretende Fehler besser lokalisiert und abgestellt werden.
Der Raspberry Pi wird als LAMP-Server (Linux, Apache, MariaDB, PHP) dienen, die Nextcloud zu betreiben. Wie man diese vier Bausteine aufsetzt, zeige ich im folgenden Abschnitt.

Der erste Baustein der installiert wird, ist Linux. Hierbei handelt es sich um das Betriebssystem Raspberry Pi OS. Dieses spielt man ganz einfach mit dem Raspberry Pi Imager auf die MicroSD.
Hier wählt man (siehe Screenshot) das zu installierende Betriebssystem aus. In diesem Fall ist es das Raspberry Pi OS (64-bit). Im Imager können vorab einige Einstellungen vorgenommen werden. Ich werde in dieser Anleitung einfache Bezeichnungen und Passwörter verwenden. Diese können während der Installation entsprechend frei angepasst werden!


Über das Zahnrad des Imagers lässt sich das Raspberry Pi OS vorkonfigurieren. Hier trägt man für den Anfang die entsprechenden Daten ein:
Hostname: nextcloud
SSH aktivieren
Benutzername: radiouser
Passwort: geheim
Danach wählt man am PC/Notebook die MicroSD aus, auf die geschrieben werden soll.

Zum Schluss werden die Daten auf die MicroSD geflasht. Ist dies erledigt, kann die Karte ausgeworfen und in den vorbereiteten Raspbberry Pi (Kühlkörper, Gehäuse, Lüfter) geschoben werden. Dieser wird dann via LAN-Kabel mit dem heimischen Router verbunden und über das Netzteil mit Strom versorgt.
Natürlich könnte der RasPi auch via WLAN mit dem Router kommunizieren. Hiervon rate ich jedoch ab, da über die Funkverbindung oft nicht die volle Geschwindigkeit einer Ethernet-Verbindung genutzt werden kann. Weiterhin kann es zu Verbindungsabbrüchen bzw. -lücken kommen.
Nachdem der Raspberry Pi mit Strom versorgt wird, startet dieser. Ist der Raspberry Pi hochgefahren, kann dieser via arp-scan vom PC/Notebook im Netzwerk lokalisiert werden. In meinem Fall hat er die IP-Adresse 192.168.178.136.
sudo apt install arp-scan sudo arp-scan -l

Zugriff auf den Pi erhalte ich nun via zuvor im Imager aktiviertem SSH-Zugang.
ssh Benutzer@IP-Adresse

Ist man eingeloggt, empfiehlt es sich die Lokalisierung über raspi-config auf deutsch (siehe Screenshots) umzustellen. Damit wird Datum und Uhrzeit des Servers an die europäische Zeitzone (Berlin) angepasst.
sudo raspi-config


Nun wählt man de_DE.UTF-8 UTF-8 aus und deaktiviert en_GB.UTF-8 UTF-8. Die deutsche Lokalisierung wird abschließend noch bestätigt.


Danach wird der Raspberry Pi mit
sudo reboot
neu gestartet. Ist dies geschehen, empfiehlt es sich, das OS zu aktualisieren.
sudo apt update && sudo apt upgrade -y
Danach werden die noch fehlenden 3 Bausteine (Apache 2, MariaDB und PHP) nachinstalliert.
sudo apt install apache2 mariadb-server php php-mysql php-zip php-gd php-json php-curl php-mbstring php-intl php-imagick php-xml php-dom php-bcmath -y
Nachdem die Installation durchgelaufen ist, kann man zum Testen den Webserver Apache via Browser über die Web-Adresse http://ip erreichen.
Anschließend wird die von der Nextcloud benötigte Datenbank installiert. Zuerst wird jedoch die mysql_secure_installation durchgeführt. Ich empfehle hier das Ganze gemäß meinen Empfehlungen (Enter, n, n, y, y, y, y) zu durchlaufen. Hierbei wird für den MariaDB-Server kein separates Root-Passwort vergeben, der anonyme User wird gelöscht, die Remote-Root-Anmeldung wird verboten, die Test-DB wird gelöscht und die Änderungen ausgeführt.
sudo mysql_secure_installation
If you’ve just installed MariaDB, and you haven’t set the root password yet, the password will be blank, so you should just press enter here. Enter
Switch to unix_socker_authentication [Y/n] n
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Nachdem dieser Schritt durchgeführt wurde, kann über folgenden Befehl die Datenbank erstellt werden.
sudo mysql -u root -p
In meinem Fall heißen die Datenbank und der Benutzer „nextcloud“. Die Datenbank liegt dann auf dem „localhost“.
> CREATE DATABASE nextcloud; > CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'geheim'; > GRANT ALL ON nextcloud.* TO 'nextcloud'@'localhost'; > FLUSH PRIVILEGES; > \q
Im Nachgang wechselt man in das Verzeichnis /var/www/html, wo die Nextcloud installiert wird. Die letzte Version wird vom Entwickler herunter geladen und entpackt. Danach wird die nicht mehr benötigte Zip-Datei wieder gelöscht und die Rechte der Dateien an den Benutzer www-data übertragen.
cd /var/www/html sudo wget https://download.nextcloud.com/server/releases/latest.zip sudo unzip *.zip sudo rm *.zip sudo chown -R www-data:www-data /var/www/html/nextcloud
Nun ist die Nextcloud über http://ip/nextcloud (http://102.168.178.136/nextcloud) erreichbar. Man legt den Admin fest und trägt die Daten der zuvor erstellten MariaDB-Datenbank in die Eingabemaske ein. Hat das alles geklappt, dann dauert die Einrichtung ein paar Minuten und die Nextcloud steht bereit zum ersten Login des neuen Administrators.

Im nächsten Teil zeige ich, wie man die App Collabora Online – Built-in CODE Server (ARM64) in der Nextcloud via Terminal installiert.
Viel Spaß!
Der 9. Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Zur Replikation und Kapselung von Laufzeitumgebungen ist Apptainer die Lösung innerhalb der Computerwissenschaft.


Der 8. Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Der 7. Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Der 6. Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Mit InvoiceNinja schreibst Du professionell Deine Rechnung auch von unterwegs, einmal auf einen Server installiert und schon kann es losgehen. Free open Source und kostenfrei. Eine Kurzvorstellung


Der fünfte Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Mit Dolibarr schreibst Du professionell Deine Rechnung auch von unterwegs, einmal auf einen Server installiert und schon kann es losgehen. Free open Source und kostenfrei. Eine Kurzvorstellung


Der vierte Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Libre-Workspace: Eine kostenlose FOSS Server-Software, mit der es sich gut arbeiten lässt. Nextcloud, Jitsi, Matrix und Collabora. Ein fertiges Debian-Image (Beta-Status) steht zum download bereit. Der Autor möchte es testen!


Der dritte Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Der zweite Teil einer Einführung in die Python3-Bibliothek Tkinter und der lange Weg zum perfekten GUI.


Das EU-finanzierte Projekt möchte die Souveränität eines europäischen Ökosystems für mobile Apps stärken.


Daten aus einer Wetterstation auslesen.


Das Buch "Ada & Zangemann" von Matthias Kirschner und Sandra Brandstätter soll verfilmt werden.


Eine kleine Inspiration, um mit Python anzufangen.


Da ich einiges an Zeit in meine auf dem Raspberry Pi 4 laufende Nextcloud investiert habe, wäre es schade, für das aktuelle Raspberry Pi OS 12, alles noch einmal aufsetzen und konfigurieren zu müssen. Obwohl die Entwickler des Betriebssystems von einem Upgrade generell abraten, habe ich mich auf die Suche nach einer guten und funktionierenden Anleitung gemacht und bin auf den vielversprechenden Artikel „Raspberry Pi OS – Update von Bullseye (11) auf Bookworm (12)“ von Sascha Syring gestoßen.
Um das Ganze ausgiebig zu testen, habe ich das Upgrade zuerst auf einem Raspberry Pi 4 durchgeführt, auf dem ein Mumble-Server läuft, den unsere Community produktiv zum Erfahrungsaustausch nutzt. Nachdem dies alles problemlos funktioniert hat, habe ich mich an meinen Nextcloud-RasPi gewagt. Was es weiter zu beachten gab, darauf gehe ich am Ende des Artikels noch ein.
Bevor es los geht muss das System auf den aktuellsten Stand unter Raspberry Pi OS 11 Bullseye gebracht werden. Hierzu führt man Folgendes aus:
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
Danach werden die Paketquellen auf das neue System Bookworm angepasst. Hierzu öffnet man die /etc/apt/sources.list
sudo nano /etc/apt/sources.list
und kommentiert alle aktiven Quellen, indem man vor jede aktive Zeile eine Raute „#“ setzt. Danach fügt man die drei Zeilen
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
am Anfang ein und speichert die Datei mit Ctr + o ab und verlässt dann den Editor mit Ctr + x.

Das Gleiche Spiel wiederholt man mit den zusätzlichen Paketquellen.
sudo nano /etc/apt/sources.list.d/raspi.list
Hier wird nun folgende Zeile an den Anfang gesetzt:
deb http://archive.raspberrypi.org/debian/ bookworm main
Die Datei wird mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Ist dies geschehen, können die Paketquellen neu eingelesen werden.

sudo apt update
Nun kommt der kniffligste Teil. Die Bootpartition muss an die neuen Gegebenheiten angepasst werden. Dazu wird die alte Boot-Partition ausgehängt.
sudo umount /boot
Dann wird das neue Verzeichnis /boot/firmware erstellt.
sudo mkdir /boot/firmware
Jetzt bearbeitet man die Partitionstabelle:
sudo nano /etc/fstab
Hier wird der Eintrag der Bootpartition entsprechend eingetragen. Bei mir sieht das so aus:

Die Datei wird wieder mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Damit die Änderungen wirksam werden, wird systemd neu geladen
sudo systemctl daemon-reload
und die neue Boot-Partition gemountet.
sudo mount /boot/firmware
Im Nachgang werden die aktuelle Firmware und der aktuelle Kernel für das Raspberry Pi OS 12 (Bookworm) installiert
sudo apt install raspi-firmware linux-image-rpi-v8
und der alte Bootloader und Linux-Kernel entfernt.
sudo apt remove raspberrypi-kernel raspberrypi-bootloader
Ist dies geschehen, müssen die Paketquellen nochmalig mit
sudo apt update
eingelesen werden.
Nun kann das eigentlich Upgrade durchgeführt werden. Hierbei stoppt der Vorgang bei den wichtigsten Konfigurationsdateien. Diese werden in der Regel alle beibehalten.
sudo apt full-upgrade
Nun wird das System noch aufgeräumt.
sudo apt autoremove sudo apt clean
Nach dem Neustart
sudo reboot now
sollte nun das aktuelle Raspberry Pi OS 12 laufen. Das installierte Betriebssystem lässt man sich mit
cat /etc/os-release
anzeigen.
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
Mit
uname -a
kann man nun den aktuellen Kernel checken. Meine Ausgabe sieht wie folgt aus:
Linux nextcloud 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux
(„nextcloud“ in dieser Zeile ist der Hostname)
Abschließend sei darauf hingewiesen, dass das Upgrade einige Gefahren in sich birgt. Bitte vorher unbedingt an ein Backup denken, was im Bedarfsfall wieder eingespielt werden kann!
Eingangs des Artikels hatte ich erwähnt, dass es Weiteres zu beachten gibt. Durch das Upgrade wurden die Einstellungen des Dienstes zu meinem Turn-Server zurück gesetzt. Ein funktionierender Turn-Server ist wichtig, um reibungslosen Verlauf in Videokonferenzen zu ermöglichen.
Wer also wie ich eine Nextcloud auf dem Raspberry Pi installiert hat und bisher meinen Anleitungen gefolgt ist, muss den zeitverzögerten Start des Turnservers, wie im Artikel „coTurn zeitverzögert auf Raspberry Pi starten“ beschrieben, wieder neu konfigurieren. Dazu editiert man die Datei /lib/systemd/system/coturn.service:
sudo nano /lib/systemd/system/coturn.service
Nun fügt man den folgenden Eintrag unter [Service] ein und speichert die Änderung mit Ctlr + o.
ExecStartPre=/bin/sleep 30
Den Editor verlässt man dann wieder mit Ctrl + x. Durch den Eintrag wird nun eine Verzögerung von 30 Sekunden erzwungen. Mit
sudo service coturn restart
wird der Turnserver zeitverzögert neu gestartet. jetzt arbeitet coTURN nach dem nächsten Reboot des Raspberry Pi wie gewünscht.
Viel Erfolg!
📲 Hat Euer Smartphone noch eine Zukunft? Der "HandyCheck" von mobilsicher.de hilft Euch mit individuellen Tipps und Anleitungen zu alten und/oder defekten Smartphones.

