Mit ein wenig Verspätung ist Fedora 43 fertig. Ich habe in den letzten Monaten schon viel mit der Beta gearbeitet und war schon damit überwiegend zufrieden. Fedora 43 ist das erste weitgehend X-freie Release (X wie X Window System, nicht wie Twitter …), es gibt nur noch XWayland zur Ausführung von X-Programmen unter Wayland. Relativ … Fedora 43 weiterlesen →
Mit ein wenig Verspätung ist Fedora 43 fertig. Ich habe in den letzten Monaten schon viel mit der Beta gearbeitet und war schon damit überwiegend zufrieden. Fedora 43 ist das erste weitgehend X-freie Release (X wie X Window System, nicht wie Twitter …), es gibt nur noch XWayland zur Ausführung von X-Programmen unter Wayland. Relativ neu ist das Installationsprogramm, auf das ich gleich näher eingehe. Es ist schon seit Fedora 42 verfügbar, aber diese Version habe ich in meinem Blog übersprungen. Die folgenden Ausführungen beziehen sich auf Fedora 43 Workstation mit Gnome. <img fetchpriority="high" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43.png" alt="" width="1920" height="1337" class="size-full wp-image-9071" srcset="https://kofler.info/wp-content/uploads/fedora43.png 1920w, https://kofler.info/wp-content/uploads/fedora43-850x592.png 850w, https://kofler.info/wp-content/uploads/fedora43-1280x891.png 1280w, https://kofler.info/wp-content/uploads/fedora43-768x535.png 768w, https://kofler.info/wp-content/uploads/fedora43-1536x1070.png 1536w" sizes="(max-width: 1920px) 100vw, 1920px" /> Fedora 43 mit Gnome in einer virtuellen Maschine Installation Das Installationsprogramm beginnt aus deutschsprachiger Sicht gleich mit einem Ärgernis: Zwar kann die Sprache mühelos auf Deutsch umgestellt werden, nicht aber das Tastaturlayout. Dazu verweist das Installationsprogramm auf die Systemeinstellungen. Dort müssen Sie nicht nur das gewünschte Layout hinzufügen, sondern auch das vorhandene US-Layout entfernen — vorher ist das Installationsprogramm nicht zufrieden. Das ist einigermaßen umständlich. <img decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install1.png" alt="" width="2561" height="1584" class="size-full wp-image-9060" srcset="https://kofler.info/wp-content/uploads/fedora43-install1.png 2561w, https://kofler.info/wp-content/uploads/fedora43-install1-850x526.png 850w, https://kofler.info/wp-content/uploads/fedora43-install1-1280x792.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install1-768x475.png 768w, https://kofler.info/wp-content/uploads/fedora43-install1-1536x950.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install1-2048x1267.png 2048w" sizes="(max-width: 2561px) 100vw, 2561px" /> Die Einstellung des Tastaturlayouts muss in den Gnome-Systemeinstellungen erfolgen In virtuellen Maschinen wird bei der Installationsmethode (gemeint ist die Partitionierung des Datenträgers und das Einrichten der Dateisysteme) nur eine Option angezeigt: Gesamten Datenträger verwenden. Damit haben Sie weder Einfluss auf die Größe der Partitionen noch auf den Dateisystemtyp oder dessen Optionen. Das Standardlayout lautet: EFI-Partition (vfat), Boot-Partition (ext4) und Systempartition (btrfs mit zwei Subvolumes für / und /home und aktiver Komprimierung). Eine Swap-Partition gibt es nicht, Fedora verwendet schon seit einiger Zeit Swap on ZRAM. <img decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install2.png" alt="" width="2557" height="1586" class="size-full wp-image-9054" srcset="https://kofler.info/wp-content/uploads/fedora43-install2.png 2557w, https://kofler.info/wp-content/uploads/fedora43-install2-850x527.png 850w, https://kofler.info/wp-content/uploads/fedora43-install2-1280x794.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install2-768x476.png 768w, https://kofler.info/wp-content/uploads/fedora43-install2-1536x953.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install2-2048x1270.png 2048w" sizes="(max-width: 2557px) 100vw, 2557px" /> Bei der Installation von Fedora in eine Virtuelle Maschine sind auf den ersten Blick nur wenig Optionen erkennbar … Wenn Sie die Installation auf einem Rechner durchführen, auf dem schon Windows oder andere Linux-Distributionen installiert sind, wird die Auswahl größer: Die Option Share disk with other operation systems (vielleicht wird der Text bei späteren Versionen noch übersetzt) erscheint, wenn das Setup-Programm Windows oder andere Linux-Distributionen auf der SSD erkennt. In diesem Fall nutzt Fedora den verbleibenden freien Platz auf der SSD und richtet dort eine Boot- und eine Systempartition ein. Wenn es auf der SSD keinen oder zu wenig Platz gibt, sollten Sie zusätzlich die Option Zusätzlichen Speicherplatz zurückgewinnen aktivieren. Sie können dann in einem weiteren Dialog einzelne Partitionen löschen oder verkleinern. Gesamten Datenträger verwenden löscht alle vorhandene Partitionen und richtet dann wie oben beschreiben EFI-, Boot- und Systempartition ein. Zuweisung des Einhängepunkts bietet Linux-Profis die Möglichkeit, schon vorhandene Dateisysteme zu nutzen. Es gibt zwei Möglichkeiten, diese Dateisysteme einzurichten. Eine bietet der über den unscheinbaren Menü-Button erreichbare Speicher-Editor. Dort können Sie Partitionen, Logical Volumes, RAID-Setup und Dateisysteme samt Verschlüsselung einrichten. Es mangelt nicht an Funktionen, aber leider ist die Bedienung sehr unübersichtlich. Alle hier initiierten Aktionen werden sofort durchgeführt und können nicht rückgängig gemacht werden. Alternativ können Sie vorweg in einem Terminal mit parted Partitionen einrichten und dann mit mkfs.xxx darin die gewünschten Dateisysteme anlegen. Falls das Dateisystem verschlüsselt werden soll, müssen Sie sich auch darum selbst kümmern (Kommando cryptsetup). Das erfordert ein solides Linux-Vorwissen. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install3a-scaled.png" alt="" width="2560" height="1504" class="size-full wp-image-9063" srcset="https://kofler.info/wp-content/uploads/fedora43-install3a-scaled.png 2560w, https://kofler.info/wp-content/uploads/fedora43-install3a-850x499.png 850w, https://kofler.info/wp-content/uploads/fedora43-install3a-1280x752.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install3a-768x451.png 768w, https://kofler.info/wp-content/uploads/fedora43-install3a-1536x902.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install3a-2048x1203.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /> Das Setup-Programm wirkt mit den bereits installierten Distributionen überfordert. (Es sind in Wirklichkeit nur sechs Distributionen, nicht mehrere Dutzend …) Manuelle Partitions-Setups müssen über den »Speichereditor« durchgeführt werden. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install2b-scaled.png" alt="" width="2560" height="1504" class="size-full wp-image-9067" srcset="https://kofler.info/wp-content/uploads/fedora43-install2b-scaled.png 2560w, https://kofler.info/wp-content/uploads/fedora43-install2b-850x499.png 850w, https://kofler.info/wp-content/uploads/fedora43-install2b-1280x752.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install2b-768x451.png 768w, https://kofler.info/wp-content/uploads/fedora43-install2b-1536x902.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install2b-2048x1203.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /> Der »Speichereditor« zur manuellen Partitionierung listet alle Subvolumes aller btrfs-Dateisysteme auf und ist auch sonst extrem unübersichtlich in seiner Bedienung In der Speicher-Konfiguration können Sie das Dateisystem verschlüsseln (außer Sie haben sich im vorigen Schritt für die Zuweisung des Einhängepunkts entschieden). Zur Verschlüsselung geben Sie zweimal das Passwort an und stellen ein, welches Tastaturlayout beim Bootvorgang für die Eingabe dieses Passworts gelten soll. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install3.png" alt="" width="2556" height="1591" class="size-full wp-image-9055" srcset="https://kofler.info/wp-content/uploads/fedora43-install3.png 2556w, https://kofler.info/wp-content/uploads/fedora43-install3-850x529.png 850w, https://kofler.info/wp-content/uploads/fedora43-install3-1280x797.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install3-768x478.png 768w, https://kofler.info/wp-content/uploads/fedora43-install3-1536x956.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install3-2048x1275.png 2048w" sizes="auto, (max-width: 2556px) 100vw, 2556px" /> Die Verschlüsselung des Dateisystems gelingt nur problemlos, sofern Sie im vorigen Schritt keine manuelles Setup eingerichtet haben Zuletzt zeigt das Installationsprogramm eine Zusammenfassung der Einstellungen ein. Ein Benutzeraccount samt Passwort wird erst später beim ersten Start von Gnome eingerichtet. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install4.png" alt="" width="2553" height="1593" class="size-full wp-image-9056" srcset="https://kofler.info/wp-content/uploads/fedora43-install4.png 2553w, https://kofler.info/wp-content/uploads/fedora43-install4-850x530.png 850w, https://kofler.info/wp-content/uploads/fedora43-install4-1280x799.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install4-768x479.png 768w, https://kofler.info/wp-content/uploads/fedora43-install4-1536x958.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install4-2048x1278.png 2048w" sizes="auto, (max-width: 2553px) 100vw, 2553px" /> Zusammenfassung des Setups Alles in allem ist die Bedienung des neuen Programms zwar einfach, sie bietet aber zu wenig Optionen für eine technisch orientierte Distribution. Der aktuelle Trend vieler Distributionen besteht darin, den Installationsprozess auf Web-basierte Tools umzustellen. Die Sinnhaftigkeit erschließt sich für mich nicht, schon gar nicht, wenn dabei auch noch die Funktionalität auf der Strecke bleibt. Muss das Rad wirklich immer wieder neu erfunden werden? Nach dem Neustart landen Sie in einen Assistenten, der bei der Grundkonfiguration von Gnome hilft: Sprache und Tastaturlayout noch einmal bestätigen, Zeitzone einstellen etc. Vollkommen missglückt ist das Dialogblatt zur Aktivierung von Drittanbieter-Softwarequellen. Gemeint sind damit die RPM-Fusion-Paketquellen mit Paketen und Treibern (z.B. für NVIDIA-Grafikkarten), die nicht dem Open-Source-Modell entsprechen. Im Zentrum des Bildschirms befindet sich ein Toggle-Button mit den Zuständen aktivieren oder deaktivieren. Es ist unmöglich zu erkennen, ob Sie den Button zur Aktivierung drücken müssen oder ob dieser den Zustand »bereits aktiv« ausdrückt. (Auflösung: Sie müssen ihn nicht drücken. Wenn mit blauem Hintergrund »aktivieren« angezeigt wird, werden die zusätzlichen Paketquellen mit Weiter eingerichtet.) <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install5.png" alt="" width="2556" height="1591" class="size-full wp-image-9057" srcset="https://kofler.info/wp-content/uploads/fedora43-install5.png 2556w, https://kofler.info/wp-content/uploads/fedora43-install5-850x529.png 850w, https://kofler.info/wp-content/uploads/fedora43-install5-1280x797.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install5-768x478.png 768w, https://kofler.info/wp-content/uploads/fedora43-install5-1536x956.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install5-2048x1275.png 2048w" sizes="auto, (max-width: 2556px) 100vw, 2556px" /> Klicken Sie nicht auf »Drittanbieter-Softwarequellen aktivieren«! Das würde die Option deaktivieren. (Ein Meisterbeispiel für GUI Fails …) Erst jetzt werden Sie dazu aufgefordert, einen Benutzer einzurichten, der dann auch sudo-Rechte erhält. Sobald Sie alle Daten samt Passwort festgelegt haben, können Sie sich einloggen und mit Fedora loslegen. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-install6.png" alt="" width="2550" height="1589" class="size-full wp-image-9058" srcset="https://kofler.info/wp-content/uploads/fedora43-install6.png 2550w, https://kofler.info/wp-content/uploads/fedora43-install6-850x530.png 850w, https://kofler.info/wp-content/uploads/fedora43-install6-1280x798.png 1280w, https://kofler.info/wp-content/uploads/fedora43-install6-768x479.png 768w, https://kofler.info/wp-content/uploads/fedora43-install6-1536x957.png 1536w, https://kofler.info/wp-content/uploads/fedora43-install6-2048x1276.png 2048w" sizes="auto, (max-width: 2550px) 100vw, 2550px" /> Erst ganz zum Schluss richten Sie den Benutzer-Account ein Um den Hostname hat sich weder das Installationsprogramm noch der Setup-Assistent gekümmert. Außerdem sollten Sie gleich ein erstes Update durchführen: sudo hostnamectl set-hostname <name> sudo dnf update Die Partitionierung eines zuvor leeren Systems sieht so aus: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS zram0 251:0 0 3,8G 0 disk [SWAP] vda 253:0 0 32G 0 disk ├─vda1 253:1 0 600M 0 part /boot/efi ├─vda2 253:2 0 1G 0 part /boot └─vda3 253:3 0 30,4G 0 part /home / cat /etc/fstab UUID=8ecb5756-a227-47e4-bb45-bf7087952ff5 / btrfs subvol=root,compress=zstd:1 0 0 UUID=32281370-1a5c-4440-8e16-60715e191080 /boot ext4 defaults 1 2 UUID=E969-E24F /boot/efi vfat umask=0077,shortname=winnt 0 2 UUID=8ecb5756-a227-47e4-bb45-bf7087952ff5 /home btrfs subvol=home,compress=zstd:1 0 0 Versionen Die folgende Tabelle fasst die Versionen der Kernkomponenten von Fedora 43 zusammen: Basis Programmierung Server --------------- -------------- -------------------------- Kernel 6.17 bash 5.3 Apache 2.4 glibc 2.42 gcc 15.2 CUPS 2.4 Wayland 1.24 git 2.51 MariaDB 10.11 / MySQL 8.4 Gnome 49 Java 25 OpenSSH 10.0 Mesa 25.2 PHP 8.4 PostgreSQL 18 Systemd 258 Podman 5.6 Postfix 3.10 NetworkMan 1.54 Python 3.14 qemu/KVM 10.1 GRUB 2.12 Node.js 22 Samba 4.23 Die einzige Auffälligkeit ist die komplett veraltete MariaDB-Version. Aktuell ist 12.0, Debian verwendet immerhin 11.8. Die von Fedora eingesetzte Version 10.11 wurde im Februar 2023 (!!) veröffentlicht. Dafür enthält Fedora mit Version 8.4 eine ganz aktuelle MySQL-Version. Generell steht MySQL erst seit Fedora 41 wieder regulär in Fedora zur Verfügung; ältere Versionen waren MariaDB-only. Neuerungen Wenn man von durch Software-Updates verbundenen optischen Änderungen absieht (z.B. in Gnome), gibt es relativ wenig technische Änderungen, und noch weniger davon sind sichtbar. Gnome und gdm sind seit Version 49 Wayland-only. Darüber wurde in den letzten Wochen schon viel geschrieben. Seit die NVIDIA-Treiber endlich Wayland-kompatibel sind, ist der Abschied von X nicht mehr aufzuhalten. (Persönlich vermisse ich X nicht. Die meisten Linux-Anwender werden keinen Unterschied bemerken bzw. arbeiten ohnedies schon seit zwei, drei Releases mit Wayland, ohne es zu wissen …) Fedora 43 verwendet erstmals RPM 6.0 als Basis zur Verpackung von Software-Paketen. Daraus ergeben sich neue Möglichkeiten beim Signieren von Paketen, aber an der Anwendung des rpm-Kommandos (das Sie ohnedies selten benötigen werden, es gibt ja dnf) ändert sich nichts. Distributions-Upgrades auf die neue Fedora-Version können Sie jetzt äußerst komfortabel direkt im Gnome-Programm Software starten. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fedora43-upgrade.png" alt="" width="1818" height="1172" class="size-full wp-image-9059" srcset="https://kofler.info/wp-content/uploads/fedora43-upgrade.png 1818w, https://kofler.info/wp-content/uploads/fedora43-upgrade-850x548.png 850w, https://kofler.info/wp-content/uploads/fedora43-upgrade-1280x825.png 1280w, https://kofler.info/wp-content/uploads/fedora43-upgrade-768x495.png 768w, https://kofler.info/wp-content/uploads/fedora43-upgrade-1536x990.png 1536w" sizes="auto, (max-width: 1818px) 100vw, 1818px" /> Distributions-Upgrade in Gnome »Software« starten Wie bisher können Sie natürlich auch auf die folgende Kommandoabfolge zurückgreifen: sudo dnf update sudo dnf repolist --releasever 43 sudo dnf system-upgrade download --releasever 43 sudo dnf offline reboot Auf UEFI-Systemen setzt das Installationsprogramm nun eine GPT-Partitionierung voraus (nicht MBR). Die /boot-Partition wird mit 2 GiB großzügiger als bisher dimensioniert, um Platz für zukünftige neue Boot-Systeme zu schaffen. dnf module gibt es nicht mehr, weil das Modularity-Projekt eingestellt wurde. Bei Fedora ist das weniger schade als bei RHEL, wo ich dieses Feature wirklich vermisse. dracut, das Tool zum Erzeugen von initramfs-Dateien, verwendet nun zstd statt xz zum Komprimieren der Dateien. Das macht die Boot-Dateien größer, aber den Boot-Vorgang schneller. Fazit Ich habe in den letzten Monaten sehr viel unter Fedora gearbeitet. Fedora ist dabei zu meiner zweiten Lieblingsdistribution geworden (neben Arch Linux). Im Betrieb gab es eigentlich nichts auszusetzen. Auch die Distributions-Upgrades haben mehrfach gut funktioniert: Ich habe zuletzt eine physische Installation von Fedora 41 auf 42 und vorgestern auf 43 aktualisiert. Zwischenzeitlich hat sich sogar der Rechner geändert, d.h. ich habe die SSD bei einem Rechner aus- und bei einem anderen Rechner wieder eingebaut. Hat alles klaglos funktioniert. Das neue Installationsprogramm (neu schon seit der vorigen Version, also Fedora 42) ist aber definitiv ein Rückschritt — und das alte war schon keine Offenbarung. Bevor der Installer in Zukunft unter RHEL 11 zum Einsatz kommen kann, muss Red Hat noch viel nacharbeiten. Wie soll damit ein für den Server-Einsatz übliches RAID- oder LVM-Setup gelingen? Der oft gehörten Empfehlung, Fedora sei durchaus für Einsteiger geeignet, kann ich deswegen nur teilweise zustimmen. Im Betrieb ist Fedora in der Tat so unkompliziert und stabil wie vergleichbare Distributionen (Debian, Ubuntu etc.). Für die Installation gilt dies aber nur, wenn Sie den gesamten Datenträger — z.B. eine zweite SSD — für Fedora nutzen möchten und mit dem vorgegebenen Default-Layout einverstanden sind. Unkompliziert ist natürlich auch die Installation in eine virtuelle Maschine. Aber jeder Sonderwunsch — ext4 statt btrfs, eine getrennte /home-Partition etc. — wird sofort zum Abenteuer. Schade. Quellen/Links https://www.fedoraproject.org/workstation/download https://docs.fedoraproject.org/en-US/fedora/latest/release-notes https://fedoramagazine.org/announcing-fedora-linux-43 https://rpm.org/releases/6.0.0 https://www.heise.de/news/Fedora-Linux-43-Adieu-X11-Hallo-WebUI-10912606.html
Es ist schon eine logistische Herausforderung, wenn ein Buch mit nunmehr zwölf Autoren auf den neuesten Stand gebracht werden soll! Das hat uns natürlich nicht abhalten können. Diese Woche wird die vierte Auflage unseres Standardwerks mit fast 1300 Seiten an die Buchhandlungen ausgeliefert. Ich glaube, wir dürfen ein wenig stolz sein :-) Die Inhalte sind … 📚 Hacking & Security (4. Aufl.) weiterlesen →
Es ist schon eine logistische Herausforderung, wenn ein Buch mit nunmehr zwölf Autoren auf den neuesten Stand gebracht werden soll! Das hat uns natürlich nicht abhalten können. Diese Woche wird die vierte Auflage unseres Standardwerks mit fast 1300 Seiten an die Buchhandlungen ausgeliefert. Ich glaube, wir dürfen ein wenig stolz sein :-) Die Inhalte sind auf dem neuesten Stand, aber das Konzept ist gleich geblieben: Wir wollen in diesem Buch zeigen, wie und mit welchen Tools Hacker und Pen-Tester arbeiten. Und Ihnen in logischer Konsequenz erklären, wie Sie sich gegen Angriffe bestmöglich schützen können. Ganz bewusst lassen wir es nicht beim klassischen Netzwerk-Hacking bewenden, sondern gehen auch auf Einfallsvektoren wie Cloud, IoT, Mobile Devices usw. ein. Für die hier vierte Auflage haben wir das Buch umfassend aktualisiert und um viele neue Inhalte erweitert. Besonders erwähnen möchten wir: Hacking lernen (neues Kapitel mit Fokus auf den Hacking-Einstieg) Absicherung von Samba (Kapitel grundlegend überarbeitet und erneuert) Absicherung von Microsoft 365 (neues Kapitel) Absicherung von KI-Anwendungen (neues Kapitel) Absicherung von Docker, Geoblocking mit Firewalls (nft) SIEM-Systeme (Wazuh, Microsoft Senitel) Die wohl größte Neuerung im Vergleich zur vorigen Auflage besteht darin, dass KI-Tools 2022 noch exotisch waren, heute aber allgegenwärtig sind. KI-Tools werden sowohl von Hackern (Angriff) als auch zur Verbesserung der Sicherheit (Verteidigung) genutzt. Viele Kapitel enthalten Tipps und Hinweise zur Anwendung von KI-Werkzeugen. Hier finden Sie mehr Infos zum Buch, den obligatorischen Bestell-Links sowie eine Leseprobe.
Tipp: virtuelle Linux-Maschinen, Probleme mit Zwischenablage und Uhrzeit beheben
In meinem Arbeitsalltag wimmelt es von virtuellen Linux-Maschinen, die ich primär mit zwei Programmen ausführe: virtual-machine-manager alias virt-manager (KVM/QEMU) unter Linux UTM (QEMU + Apple Virtualization) unter macOS Dabei treten regelmäßig zwei Probleme auf: Bei Neuinstallationen funktioniert der Datenaustausch über die Zwischenablage zwischen Host und VM (= Gast) funktioniert nicht. Die Uhrzeit in der VM … Tipp: virtuelle Linux-Maschinen, Probleme mit Zwischenablage und Uhrzeit beheben weiterlesen →
In meinem Arbeitsalltag wimmelt es von virtuellen Linux-Maschinen, die ich primär mit zwei Programmen ausführe: virtual-machine-manager alias virt-manager (KVM/QEMU) unter Linux UTM (QEMU + Apple Virtualization) unter macOS Dabei treten regelmäßig zwei Probleme auf: Bei Neuinstallationen funktioniert der Datenaustausch über die Zwischenablage zwischen Host und VM (= Gast) funktioniert nicht. Die Uhrzeit in der VM ist falsch, nachdem der Host eine Weile im Ruhestand war. Diese Ärgernisse lassen sich leicht beheben … Anmerkung: Ich beziehe mich hier explizit auf die Desktop-Virtualisierung. Ich habe auch VMs im Server-Betrieb — da brauche ich keine Zwischenablage (Text-only, SSH-Administration), und die Uhrzeit macht wegen des dauerhaften Internet-Zugangs auch keine Probleme. Zwischenablage mit Spice als Grafik-Protokoll Wenn das Virtualisierungssystem das Grafiksystem mittels Simple Protocol for Independent Computing Environments (SPICE) überträgt (gilt per Default im virtual-machine-manager und in UTM), funktioniert die Zwischenablage nur, wenn in der virtuellen Maschine das Paket spice-vdagent installiert ist. Wenn in der virtuellen Maschine Wayland läuft, was bei immer mehr Distributionen standardmäßig funktioniert, brauchen Sie außerdem wl-clipboard. Also: sudo apt install spice-vdagent wl-clipboard sudo dnf install spice-vdagent wl-clipboard sudo pacman -S spice-vdagent wl-clipboard Nach der Installation müssen Sie sich in der VM aus- und neu einloggen, damit die Programme auch gestartet werden. Manche, virtualisierungs-affine Distributionen installieren die beiden winzigen Pakete einfach per Default. Deswegen funktioniert die Zwischenablage bei manchen Linux-Gästen sofort, bei anderen aber nicht. Synchronisierung der Uhrzeit Grundsätzlich beziehen sowohl die virtuellen Maschine als auch der Virtualisierungs-Host die Uhrzeit via NTP aus dem Internet. Das klappt problemlos. Probleme treten dann auf, wenn es sich beim Virtualisierungs-Host um ein Notebook oder einen Desktop-Rechner handelt, der hin- und wieder für ein paar Stunden inaktiv im Ruhezustand schläft. Nach der Reaktivierung wird die Zeit im Host automatisch gestellt, in den virtuellen Maschinen aber nicht. Vielleicht denken Sie sich: Ist ja egal, so wichtig ist die Uhrzeit in den virtuellen Maschinen ja nicht. So einfach ist es aber nicht. Die Überprüfung von Zertifikaten setzt die korrekte Uhrzeit voraus. Ist diese Voraussetzung nicht gegeben, können alle möglichen Problem auftreten (bis hin zu Fehlern bei der Software-Installation bzw. bei Updates). Für die lokale Uhrzeit in den virtuellen Maschinen ist das Programm chrony zuständig. Eigentlich sollte es in der Lage sein, die Zeit automatisch zu justieren — aber das versagt, wenn die Differenz zwischen lokaler und echter Zeit zu groß ist. Abhilfe: starten Sie chronyd neu: sudo systemctl restart chronyd Um die automatische Einstellung der Uhrzeit nach der Wiederherstellung eines Snapshots kümmert sich der qemu-guest-agent (z.B. im Zusammenspiel mit Proxmox). Soweit das Programm nicht automatisch installiert ist: sudo apt install qemu-guest-agent sudo dnf install qemu-guest-agent sudo pacman -S qemu-guest-agent Quellen / Links https://man.archlinux.org/man/spice-vdagent.1.en https://github.com/utmapp/vd_agent https://github.com/bugaevc/wl-clipboard https://pve.proxmox.com/wiki/Qemu-guest-agent
Seit über 30 Jahren nutze ich Linux, und knapp 25 Jahre davon war die bash meine Shell. Ein eigener Prompt, der das aktuelle Verzeichnis farbig anzeigte, was das Maß der Dinge :-) Mein Umstieg auf die zsh hatte mit Git zu tun: Die zsh in Kombination mit der Erweiterung Oh my zsh gibt im Prompt … Wie ein fish im Wasser weiterlesen →
Seit über 30 Jahren nutze ich Linux, und knapp 25 Jahre davon war die bash meine Shell. Ein eigener Prompt, der das aktuelle Verzeichnis farbig anzeigte, was das Maß der Dinge :-) Mein Umstieg auf die zsh hatte mit Git zu tun: Die zsh in Kombination mit der Erweiterung Oh my zsh gibt im Prompt direktes Feedback über den Zustand des Repositories (aktiver Zweig, offene Änderungen). Außerdem agiert die zsh in vielen Details »intelligenter« (ein viel strapazierter Begriff, ich weiß) als die bash. Es macht ein wenig Arbeit, bis alles so funktioniert wie es soll, aber ich war glücklich mit meinem Setup. Seit ein paar Monaten habe ich die Default-Shell meiner wichtigsten Linux-Installationen neuerlich gewechselt. Ich gehöre jetzt zum rasch wachsenden Lager der fish-Fans. fish steht für Friendly Interactive Shell, und die Shell wird diesem Anspruch wirklich gerecht. fish bietet von Grund auf eine Menge Features, die zsh plus diverse Plugins inklusive Oh my zsh erst nach einer relativ mühsamen Konfiguration beherrschen. Die Inbetriebnahme der fish dauert bei den meisten Distributionen weniger als eine Minute — und die Defaultkonfiguration ist so gut, dass weitere Anpassungen oft gar nicht notwendig sind. Und sollte das doch der Fall sein, öffnet fish_config einen komfortablen Konfigurationsdialog im Webbrowser (außer Sie arbeiten in einer SSH-Session). Die Stärken der fish im Vergleich zu bash und zsh haben aus meiner Sicht wenig mit der Funktionalität zu tun; einige Features der fish lassen sich auch mit bash-Hacks erreichen, fast alle mit zsh-Plugins. Der entscheidende Vorteil ist vielmehr, dass die fish out of the box zufriedenstellend funktioniert. Für mich ist das deswegen entscheidend, weil ich viele Linux-Installationen verwende und keine Zeit dafür habe, mich jedesmal mit dem Shell-Setup zu ärgern. Deswegen hatte ich in der Vergangenheit auf meinen wichtigsten Installationen zsh samt einer maßgeschneiderten Konfiguration, auf allen anderen aber der Einfachheit halber die bash oder eine unkonfigurierte zsh-Installation. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fish-intro.png" alt="" width="1208" height="289" class="size-full wp-image-8866" srcset="https://kofler.info/wp-content/uploads/fish-intro.png 1208w, https://kofler.info/wp-content/uploads/fish-intro-850x203.png 850w, https://kofler.info/wp-content/uploads/fish-intro-768x184.png 768w" sizes="auto, (max-width: 1208px) 100vw, 1208px" /> Auf den ersten Blick sieht die »fish« aus wie jede andere Shell Installation Die Installation ist schnell erledigt. Alle gängigen Distributionen stellen fish als Paket zur Verfügung. Also apt/dnf install fish, danach: chsh -s $(which fish) Aus- und neu einloggen, fertig. Falls Ihnen die fish doch nicht zusagt, ist die bisherige Shell ebenso schnell mit chsh -s $(which bash) oder chsh -s $(which zsh) reaktiviert. Features Im Prinzip verhält sich die fish wie jede andere Shell. Insbesondere gelten die üblichen Mechanismen zum Start von Kommandos, zur Ein- und Ausgabeumleitung mit < und >, zur Bildung von Pipes mit | sowie zur Verarbeitung von Kommandoergebnissen mit $(cmd). Was ist also neu? Während der Eingabe verwendet die fish Farben, um verschiedene Bestandteile Ihres Kommandos (z.B. Zeichenketten) zu kennzeichnen. Das sieht nett aus, der entscheidende Vorteil ist aber, dass Sie oft Tippfehler erkennen, bevor Sie Return drücken: Kommandos, die es gar nicht gibt, werden rot hervorgehoben, ebenso nicht geschlossene Zeichenketten. (Die Farben sind vom aktiven Farbschema abhängig.) Die Vervollständigung von Kommandos, Optionen, Datei- und Variablennamen mit der Tabulator-Taste ist noch »intelligenter« als bei bash und zsh. fish greift dazu auf über 1000 *.fish-Dateien im Verzeichnis /usr/share/fish/completions zurück, die Regeln für alle erdenklichen Fälle enthalten und mit jeder fish-Version erweitert werden. Die fish zeigt sogar kurze Hilfetexte an (siehe die folgende Abbildung). Wenn es viele mögliche Vervollständigungen gibt, zeigt fish diese in mehreren Spalten an. Sie können mit den Cursortasten das gewünschte Element auswählen. Bei der Eingabe von Kommandos durchsucht die fish die History, also eine Datei, in der alle zuletzt ausgeführten Kommandos gespeichert wurden. In etwas blasserer Schrift schlägt es das passendste Kommando vor. Die fish berücksichtigt dabei auch den Kontext (welches Verzeichnis ist aktiv, welche Kommandos wurden vorher ausgeführt) und schlägt oft — fast schon ein wenig unheimlich — das richtige Kommando vor. Wenn Sie dieses Kommando ausführen möchten, vervollständigen Sie die Eingabe mit Cursor rechts (nicht Tabulator!) und drücken dann Return. Durch ähnliche Kommandos können Sie mit den Cursortasten blättern. Alternativ können Sie auch mit Strg+R suchmuster nach früher ausgeführten Kommandos suchen. Die fish sucht nach dem Muster nicht nur in den Anfangsbuchstaben, sondern in den gesamten Zeichenketten der History. Wenn das aktuelle Verzeichnis Teil eines Git-Repositories ist, zeigt fish den Namen des aktuellen Zweigs in Klammern an. (Wenn Sie mehr Git-Infos sehen wollen, ändern Sie die Prompt-Konfiguration.) <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fish-completions.png" alt="" width="1666" height="606" class="size-full wp-image-8864" srcset="https://kofler.info/wp-content/uploads/fish-completions.png 1666w, https://kofler.info/wp-content/uploads/fish-completions-850x309.png 850w, https://kofler.info/wp-content/uploads/fish-completions-1280x466.png 1280w, https://kofler.info/wp-content/uploads/fish-completions-768x279.png 768w, https://kofler.info/wp-content/uploads/fish-completions-1536x559.png 1536w" sizes="auto, (max-width: 1666px) 100vw, 1666px" /> Die »fish« zeigt Hilfetexte zu allen »mysql«-Optionen an, die mit »–default« beginnen. Globbing-Eigenheiten In Shells wird die Umwandlung von *.txt in die Liste passender Dateinamen als »Globbing« bezeichnet. Die fish verhält sich dabei fast gleich wie die bash — aber mit einem kleinen Unterschied: Wenn es keine passenden Dateien gibt (z.B. keine einzige Datei mit der Endung .txt), löst die fish einen Fehler aus. Die bash übergibt dagegen das Muster — also *.txt — an das Kommando und überlässt diesem die Auswertung. In der Regel tritt der Fehler dann dort auf. Also kein großer Unterschied? Es gibt Sonderfälle, in denen das Verhalten der bash günstiger ist. Stellen Sie sich vor, Sie wollen mit scp alle *.png-Dateien von einem externen Rechner auf Ihren lokalen Rechner übertragen: scp externalhost:*.png . In der bash funktioniert das wie gewünscht. Die fish kann aber mit externalhost:*.png nichts anfangen und löst einen Fehler aus. Abhilfe: Sie müssen das Globbing-Muster in Anführungszeichen stellen, also: scp "externalhost:*.png" . Analoge Probleme können auch beim Aufruf von Paketkommandos auftreten. apt install php8-* funktioniert nicht, wohl aber apt install "php8-*". Hintergründe zum Globbing-Verhalten können Sie hier nachlesen: Tastenkürzel Grundsätzlich gelten in der fish dieselben Tastenkürzel wie in der bash. In der fish gibt es darüberhinaus weitere Kürzel, von denen ich die wichtigsten hier zusammengestellt habe. bind oder fish_config (Dialogblatt bindings) liefert eine wesentlich längerer Liste aller Tastenkürzel. Beachten Sie, dass es vom Desktopsystem und vom Terminal abhängt, ob die Alt-Tastenkürzel wirklich funktionieren. Wenn die Kürzel vom Terminal oder dem Desktopsystem verarbeitet werden, erreichen Sie die fish nicht. Kürzel Bedeutung ------------------ ------------------------------------------------------- Alt+Cursor links führt zurück ins vorige Verzeichnis (prevd) Alt+Cursor rechts macht die obige Aktion rückgängig (nextd) Alt+E öffnet den Dateinamen mit $EDITOR Alt+H oder F1 zeigt die man-Seite zum eingegebenen Kommando an (Help) Alt+L führt ls aus Alt+P fügt der Eingabe &| less hinzu (Pager) Alt+S fügt sudo am Beginn der Eingabe ein Alt+W zeigt Aliasse und eine Beschreibung des Kommandos (What is?) Noch eine Anmerkung zu Alt+S: In meiner Praxis kommt es ständig vor, dass ich sudo vergesse. Ich führen also dnf install xy aus und erhalte die Fehlermeldung, dass meine Rechte nicht ausreichen. Jetzt drücke ich einfach Alt+S und Return. Die fish stellt sudo dem vorigen, fehlgeschlagenen Kommando voran und führt es aus. Konfiguration Das Kommando fish_config öffnet einen Konfigurationsdialog im Webbrowser. Falls Ihr Webbrowser gerade minimiert ist, müssen Sie das Fenster selbst in den Vordergrund bringen. Im Browser können Sie nun ein Farbenschema auswählen, noch mehr Informationen in den Prompt integrieren, die Tastenkürzel nachlesen etc. In SSH-Sessions scheitert der Start eines Webbrowsers. In diesem Fall können Sie mit fish_config prompt bzw. fish_config theme das Promptaussehen und das Farbschema direkt im Textmodus verändern. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/fish-config.png" alt="" width="2176" height="1594" class="size-full wp-image-8865" srcset="https://kofler.info/wp-content/uploads/fish-config.png 2176w, https://kofler.info/wp-content/uploads/fish-config-850x623.png 850w, https://kofler.info/wp-content/uploads/fish-config-1280x938.png 1280w, https://kofler.info/wp-content/uploads/fish-config-768x563.png 768w, https://kofler.info/wp-content/uploads/fish-config-1536x1125.png 1536w, https://kofler.info/wp-content/uploads/fish-config-2048x1500.png 2048w" sizes="auto, (max-width: 2176px) 100vw, 2176px" /> fish-Konfiguration im Webbrowser Wenn Sie Änderungen durchführen, werden diese im Terminal mit set -U fish_xxx newvalue ausgeführt und in Konfigurationsdateien in .config/fish gespeichert, insbesondere in: ~/.config/fish/fish_variables (Farbeinstellungen) ~/.config/fish/functions/fish_prompt.fish (Prompt) Das Gegenstück zu .bashrc oder .zshrc ist die Datei .config/fish/config.fish. Das ist der richtige Ort, um eigene Abkürzungen zu definieren, den PATH zu erweitern etc. config.fish enthält einen vordefinierten if-Block für Einstellungen, die nur für interaktive fish-Sessions relevant sind. Alle anderen Einstellungen, die z.B. in Scripts gelten sollen, führen Sie außerhalb durch. Das folgende Listing zeigt ein paar typische Einstellungen: # Datei .config/fish/config.fish ... # PATH ändern fish_add_path ~/bin fish_add_path ~/.local/bin # keine fish-Welcome-Nachricht set -U fish_greeting "" # Einstellungen nur für die interaktive Nutzung if status is-interactive # abr statt alias abbr -a ls eza abbr -a ll 'eza -la' abbr -a gc 'git commit' # Lieblingseditor set -gx EDITOR /usr/bin/jmacs end Das obige Listing zeigt schon, das die fish gängige Einstellungen anders handhabt als bash und zsh: Abkürzungen: Anstelle von alias sieht die fish das Kommando abbr vor. alias steht auch zur Verfügung, von seinem Einsatz wird aber abgeraten. abbr unterscheidet sich durch ein paar Details von alias: Die Expansion in das Kommando erfolgt bereits, wenn Sie Return drücken. Sie sehen daher, welches Kommando wirklich ausgeführt wird, und dieses Kommando (nicht die Abkürzung) wird in der History gespeichert. PATH-Änderungen: Sie müssen die PATH-Variable nicht direkt verändern, sondern können stattdessen fish_add_path aufrufen. Ihr Pfad wird am Ende hinzugefügt, wobei die Funktion sicherstellt, dass es keine Doppelgänger gibt. Variablen (set): Die Optionen des set-Kommandos zur Einstellung von Variablen funktionieren anders als in der bash: -g: Die Variable ist in der gesamten fish-Session zugänglich (Global Scope), nicht nur in einer Funktion oder einem Block. -x: Die Variable wird an Subprozesse weitergegeben (Export). -U: Die Variable wird dauerhaft in .config/fish/fish_variables gespeichert und gilt daher auch für künftige fish-Sessions (Universal). Sie wird aber nicht exportiert, es sei denn, Sie verwenden -Ux. -l: Definiert eine lokale Variable, z.B. innerhalb einer Funktion. Zusätzliche eingebaute Kommandos Jede Shell hat eine Menge integrierter Kommandos wie cd, if oder set. In der fish können Sie mit builtin -n alle derartigen Kommandos auflisten. Die meisten Kommandos entsprechen exakt den bash- und zsh-Vorgaben. In der fish gibt es aber einige originelle Erweiterungen: math führt einfache Berechnungen aus, random produziert ganzzahlige Zufallszahlen, string manupuliert Zeichenketten ohne die umständliche Parametersubstitution, path extrahiert Komponenten aus einem zusammengesetzten Dateinamen, count zählt Objekte (vergleichbar mit wc -l etc. Das folgende Listing zeigt die Anwendung dieser Kommandos: math "2.5 * 3.8" 9.5 string split " " "lorem ipsum dolor est" lorem ipsum dolor est string replace ".png" ".jpg" file1.png file2.png file3.png file1.jpg file2.jpg file3.jpg string sub -s 4 -e 8 "abcdefghijkl" # Start und Ende inklusive defgh path basename /home/kofler/images/img_234.png img_234.png path dirname /home/kofler/images/img_234.png /home/kofler/images path extension /home/kofler/images/img_234.png .png random 1 100 13 random choice a b c c count * # das aktuelle Verzeichnis hat # 32 Dateien/Verzeichnisse 32 ps ax | count # gerade laufen 264 Prozesse 264 Programmierung Die Bezeichnung Friendly Interactive Shell weist schon darauf hin: Die fish ist für die interaktive Nutzung optimiert, nicht für die Programmierung. Die fish unterstützt aber sehr wohl auch die Script-Programmierung. Diese ist insofern attraktiv, weil die fish-Entwickler auf maximale Kompatibilität verzichtet haben und die schlimmsten Syntaxungereimtheiten der bash behoben haben. fish-Scripts sind daher ungleich leichter zu verstehen als bash-Scripts. Umgekehrt heißt das leider: fish-Scripts sind inkompatibel zu bash und zsh und können nur ausgeführt werden, wo die fish zur Verfügung steht. Für mich ist das zumeist ein Ausschlusskriterium. Anstelle einer systematischen Einführung will ich Ihnen hier anhand eines Beispiels die Vorteile der fish beim Programmieren nahebringen. Das Script ermittelt die Anzahl der Zeilen für alle *.txt-Dateien im aktuellen Verzeichnis. (Ich weiß, wc -l *.txt wäre einfacher; es geht hier nur darum, diverse Syntaxeigenheiten in wenig Zeilen Code zu verpacken.) Die bash-Variante könnte so aussehen: #!/bin/bash files=(*.txt) if [ ${#files[@]} -eq 0 ]; then echo "No .txt files found" exit 1 fi for file in "${files[@]}"; do if [ -f "$file" ]; then lines=$(wc -l < "$file") echo "$file: $lines lines" fi done Das äquivalente fish-Script ist deutlich besser lesbar: #!/usr/bin/env fish set files *.txt if not count $files > /dev/null echo "No .txt files found" exit 1 end for file in $files if test -f $file echo "$file: "(count < $file)" lines" end end Auf ein paar Details möchte ich hinweisen: Kontrollstrukturen werden generell mit end abgeschlossen, nicht mit fi für if oder mit esac für case. Bedingungen für if, for etc. müssen weder in eckige Klammern gestellt noch mit einem Strichpunkt abgeschlossen werden. Die fish verarbeitet Variablen korrekt selbst wenn sie Dateinamen mit Leerzeichen enthalten. Es ist nicht notwendig, sie in Anführungszeichen zu stellen (wie bei "$file" im bash-Script). Wenn Sie in eigenen Scripts Optionen und andere Parameter verarbeiten möchten, hilft Ihnen dabei das Builtin-Kommando argparse. Eine gute Zusammenstellung aller Syntaxunterschiede zwischen bash und fish gibt die fish-Dokumentation. Paketmanager fisher Das Versprechen von fish ist ja, dass fast alles out-of-the-box funktioniert, dass die Installation von Zusatzfunktionen und deren Konfiguration ein Thema der Vergangenheit ist. Aber in der Praxis tauchen trotzdem immer Zusatzwünsche auf. Mit dem Paketmanager fisher können Zusatzmodule installiert werden. Eine Sammlung geeigneter Plugins finden Sie hier. Die Geschichte von fish Die fish ist erst in den letzten Jahren so richtig populär geworden. Das zeigt, dass es auch in der Linux-Welt Modetrends gibt. fish ist nämlich alles andere als neu. Die erste Version erschien bereits 2005. fish wurde ursprünglich in C entwickelt, dann nach C++ und schließlich nach Rust portiert. Erst seit Version 4.0 (erschienen im Februar 2025) besteht fish ausschließlich aus Rust-Code sowie in fish selbst geschriebenen Erweiterungen. Fazit Die fish punktet durch die gut durchdachte Grundkonfiguration und die leichte Zugänglichkeit (Konfiguration und Hilfe im Webbrowser). Es gibt nicht das eine Feature, mit dem sich die fish von anderen Shells abhebt, es ist vielmehr die Summe vieler, gut durchdachter Kleinigkeiten und Detailverbesserungen. Das Arbeiten in der fish ist intuitiver als bei anderen Shells und macht mehr Spaß. Probieren Sie es aus! Bei der Programmierung ist die fish inkompatibel zu anderen Shells und insofern kein Ersatz (auch wenn die fish-eigenen Features durchaus spannend sind). Zur Ausführung traditioneller Shell-Scripts brauchen Sie weiterhin eine traditionelle Shell, am besten die bash. Quellen/Links https://fishshell.com https://fishshell.com/docs/current/fish_for_bash_users.html https://fishshell.com/docs/current/language.html#wildcards-globbing https://github.com/jorgebucaran/fisher (Paketmanager) https://github.com/jorgebucaran/awsm.fish (populäre Erweiterungspakete) YouTube-Videos https://www.youtube.com/watch?v=lzTDo1KsL-I (The best shell you are not using) https://www.youtube.com/watch?v=8GN9D-OnG-A (Fish Shell Tips and Tricks / Can Your Shell Do This?)
Aktuell komme ich mit den Blog-Artikeln zu neuen Linux-Distributionen kaum mehr hinterher. Ubuntu 25.10 ist gerade fertig geworden, und zur Abwechslung gibt es deutlich mehr technische Neuerungen/Änderungen (und auch mehr Bugs) als sonst. Ich konzentriere mich hier vor allem auf die neue SSD-Verschlüsselung mit Keys im TPM. Generell ist Ubuntu 25.10 als eine Art Preview … Ubuntu 25.10 weiterlesen →
Aktuell komme ich mit den Blog-Artikeln zu neuen Linux-Distributionen kaum mehr hinterher. Ubuntu 25.10 ist gerade fertig geworden, und zur Abwechslung gibt es deutlich mehr technische Neuerungen/Änderungen (und auch mehr Bugs) als sonst. Ich konzentriere mich hier vor allem auf die neue SSD-Verschlüsselung mit Keys im TPM. Generell ist Ubuntu 25.10 als eine Art Preview für die nächste LTS-Version 26.04 zu sehen. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-dekstop.png" alt="" width="1920" height="1200" class="size-full wp-image-9003" srcset="https://kofler.info/wp-content/uploads/u2510-dekstop.png 1920w, https://kofler.info/wp-content/uploads/u2510-dekstop-850x531.png 850w, https://kofler.info/wp-content/uploads/u2510-dekstop-1280x800.png 1280w, https://kofler.info/wp-content/uploads/u2510-dekstop-768x480.png 768w, https://kofler.info/wp-content/uploads/u2510-dekstop-1536x960.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /> Ubuntu 25.10 mit Gnome 49 und Wayland Neuerungen Neben den üblichen Software-Updates, auf die ich diesmal nicht im Detail eingehe (topaktueller Kernel 6.17!) gibt es vier grundlegende Neuerungen: Gnome unterstützt nur noch Wayland als Grafiksystem. Diese Neuerung hat das Gnome-Projekt vorgegeben, und die Ubuntu-Entwickler mussten mitziehen. Ich kann nicht sagen, ob mit Überzeugung — immerhin ist das ja auch eine Vorentscheidung für Ubuntu 26.04. Die Alternative wäre gewesen, sowohl für dieses als auch für das kommende Release bei Gnome 48 zu bleiben. Persönlich läuft Gnome + Wayland für mich in allen erdenklichen echten und virtuellen Hardware-Umgebungen gut, d.h. ich trauere X nicht nach. (Über XWayland können natürlich weiterhin einzelne X-Programme ausgeführt werden — wichtig für Programme, die noch nicht auf Wayland-kompatible Bibliotheken portiert sind. Aber der Desktop als Ganzes und der Display Manager müssen jetzt Wayland verwenden.) initramfs-Dateien mit Dracut: Ubuntu verwendet zum Erzeugen der für den Boot-Prozess erforderlichen Initial-RAM-Filesystem (umgangssprachlich der initrd-Dateien) das von Red Hat etablierte Kommando dracut und weicht damit vom Debian-Fundament ab, das weiterhin mkinitramfs verwendet. Das bewährte Kommando update-initramfs bleibt erhalten, aber dieses Script ruft nun eben dracut auf. Die Änderung gilt aktuell nur für Ubuntu Desktop, während Ubuntu Server vorerst bei mkinitramfs bleibt (mehr Details). Rust Utilities: Nicht nur im Linux-Kernel wächst die Bedeutung der Programmiersprache Rust, auch immer mehr Standard-Utilities von Linux werden aktuell im Rahmen von uutils neu in Rust implementiert. Der entscheidende Vorteil von Rust ist eine bessere interne Speicherverwaltung, die weniger Sicherheitsprobleme verspricht (keine Buffer Overflows, keine Null Pointer). In Ubuntu 25.10 wurde sudo durch die Rust-Implementierung sudo-rs ersetzt. Analog kommen auch die Rust-Core-Utilities zum Einsatz (Paket rust-coreutils, siehe /usr/lib/cargo/bin/coreutils). Das betrifft viele oft benötigte Kommandos, z.B. cat, chmod, chown, cp, date, dd, echo, ln, mv, shaXXXsum etc. Ein Blick in /usr/bin zeigt eine Menge entsprechender Links. Sicherheitstechnisch ist die Umstellung erfreulich, aber die Neuimplementierung hat natürlich auch zu neuen Fehlern geführt. Schon während der Beta-Phase hat Phoronix über größere Probleme berichtet, und ganz ist der Ärger vermutlich noch nicht ausgestanden. Update 27.10.: Ein Fehler in date hat dazu geführt, dass automatische Updates nicht mehr funktionieren, siehe den Bugbericht im Launchpad. Dieser Fehler ist mittlerweile behoben. TPM-Unterstützung: Bei der Installation können Sie die Keys für die Dateisystemverschlüsselung nun im TPM speichern. Auf die Details gehe ich gleich ausführlich ein. Flatpak-Probleme Viel schlechte Presse haben sich die Ubuntu-Entwickler mit einem Flatpak-Bug eingehandelt. Aktuell gibt es ja zwei alternative Formate für (Desktop-)Pakete, Snap (Ubuntu) versus Flatpak (Red Hat und der Rest der Welt). Aufgrund einer AppArmor-Änderung funktionierten Flatpaks unter Ubuntu nicht mehr. Bugbericht, Behebung, fertig? Und genau hier begann das eigentliche Fiasko. Der Bug-Bericht stammt nämlich vom 5. September. Dennoch wurde Ubuntu 23.10 fünf Wochen später mit eben diesem Bug freigegeben. Und das ist doch ein wenig peinlich, weil es den Eindruck vermitteln könnte, dass es Ubuntu nur wichtig ist, dass das eigene Paketformat funktioniert. (Und auch wenn Ubuntu ein großer Snap-Befürworter ist, gibt es eine Menge Ubuntu-Derivate, die auf Flatpaks setzen.) Seit ein paar Tagen gibt es einen Fix, dieser wird aber noch nicht ausgeliefert. (Es kann sich nur noch um wenige Tage handeln.) Alternativ kann als Workaround das AppArmor-Profil für fusermount3 deaktiviert werden: sudo ln -s /etc/apparmor.d/fusermount3 /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/fusermount3 Natürlich ist die ganze Geschichte ein wenig der Sturm im Wasserglas, aber es ist/war definitiv ein vermeidbarer Sturm. Dateisystem-Verschlüsselung mit Keys im TPM Zuerst eine Einordnung des Themas: Wenn Sie eine Linux-Installation mit einem verschlüsselten Dateisystem einrichten, müssen Sie während des Boot-Vorgangs zwei Passwörter eingeben: Ganz zu Beginn das Disk-Verschlüsselungspasswort (oft ‚Pass Phrase‘ genannt), und später Ihr Login-Passwort. Die beiden Passwörter sind vollkommen getrennt voneinander, und sie sollten aus Sicherheitsgründen unterschiedlich sein. Elegant ist anders. Wenn Sie dagegen unter macOS oder Windows das Dateisystem verschlüsseln (FileVault, Bitlocker), gibt es trotzdem nur ein Login-Passwort. Analog gilt das übrigens auch für alle Android- und Apple-Smartphones und -Tablets. Warum reicht ein Passwort? Weil der Key zur Verschlüsselung des Dateisystems in der Hardware gespeichert wird und während des Boot-Vorgangs von dort ausgelesen wird. Auf x86-Rechnern ist dafür das Trusted Platform Module zuständig. Das TPM kann kryptografische Schlüssel speichern und nur bei Einhaltung bestimmter Boot-Regeln wieder auslesen. Bei aktuellen AMD-CPUs sind die TPM-Funktionen im CPU-Package integriert, bei Intel kümmert sich der Platform Controller Hub (PCH), also ein eigenes Chipset darum. In beiden Fällen ist das TPM sehr Hardware-nah implementiert. Der Sicherheitsgewinn bei der Verwendung des TPMs ergibt sich daraus, dass das Auslesen des Verschlüsselungs-Keys nur gelingt, solange die Verbindung zwischen Disk und CPU/Chipset besteht (die Disk also nicht in einen anderen Rechner eingebaut wurde) UND eine ganz bestimmte Boot-Sequenz eingehalten wird. Wird die Disk ausgebaut, oder wird der Rechner von einem anderen Betriebssystem gebootet, scheitert das Auslesen des Keys. (Genaugenommen enthält das TPM nicht direkt den Key, sondern den Key zum Key. Deswegen ist es möglich, den Dateisystemverschlüsselungs-Key im Notfall auch durch die Eingabe eines eigenen Codes freizuschalten.) Die Speicherung des Keys im TPM ermöglicht es also, das Dateisystem zu verschlüsseln, OHNE die Anwender ständig zur Eingabe von zwei Schlüssel zu zwingen. Die TPM-Bindung schützt vor allen Angriffen, bei denen die SSD oder Festplatte ausgebaut wird. Wenn der gesamte Rechner entwendet wird, schützt TPM immer noch vor Angriffen, die durch das Booten von einem fremden System (Linux auf einem USB-Stick) erfolgen. Allerdings kann der Dieb den Rechner ganz normal starten. Das Dateisystem wird dabei ohne Interaktion entschlüsselt, aber ein Zugriff ist mangels Login-Passwort unmöglich. Das System ist also in erster Linie so sicher wie das Login-Passwort. Weiterhin denkbar sind natürlich Angriffe auf die auf dem Rechner laufende Software (z.B. ein Windows/Samba/SSH-Server). Kurzum: TPM macht die Nutzung verschlüsselter Dateisysteme deutlich bequemer, aber (ein bisschen) weniger sicher. Zum Schluss noch eine Einschränkung: Ich bin kein Kryptografie-Experte und habe die Zusammenhänge hier so gut zusammengefasst (und definitiv vereinfacht), wie ich sie verstehe. Weder kann ich im letzten Detail erklären, warum es bei Windows/Bitlocker unmöglich ist, den Key auch dann auszulesen, wenn der Rechner von einem Linux-System gebootet wird, noch kann ich einschätzen, ob die von Ubuntu durchgeführte Implementierung wirklich wasserdicht und fehlerfrei ist. Aktuell ist sowieso noch Vorsicht angebracht. Die Ubuntu-Entwickler bezeichnen Ihr System nicht umsonst noch als experimentell. Ubuntu mit TPM-Verschlüsselung einrichten Ubuntu bezeichnet die Speicherung des Verschlüsselungs-Keys als noch experimentelles Feature. Dementsprechend habe ich meine Tests in einer virtuellen Maschine, nicht auf physischer Hardware ausgeführt. Mein Host-System war Fedora mit QEMU/KVM und virt-manager. Beim Einrichten der virtuellen Maschine sollten Sie UEFI aktivieren. Außerdem müssen Sie unbedingt ein TPM-Device zur virtuellen Maschine hinzufügen. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-virtmanager-scaled.png" alt="" width="2560" height="1789" class="size-full wp-image-9004" srcset="https://kofler.info/wp-content/uploads/u2510-virtmanager-scaled.png 2560w, https://kofler.info/wp-content/uploads/u2510-virtmanager-850x594.png 850w, https://kofler.info/wp-content/uploads/u2510-virtmanager-1280x895.png 1280w, https://kofler.info/wp-content/uploads/u2510-virtmanager-768x537.png 768w, https://kofler.info/wp-content/uploads/u2510-virtmanager-1536x1074.png 1536w, https://kofler.info/wp-content/uploads/u2510-virtmanager-2048x1431.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /> Virtuelle Maschine mit TPM-Device einrichten Bei der Installation entscheiden Sie sich für die Hardware-gestützte Verschlüsselung. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt1.png" alt="" width="1012" height="732" class="size-full wp-image-8997" srcset="https://kofler.info/wp-content/uploads/u2510-crypt1.png 1012w, https://kofler.info/wp-content/uploads/u2510-crypt1-850x615.png 850w, https://kofler.info/wp-content/uploads/u2510-crypt1-768x556.png 768w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /> Zuerst aktivieren Sie die Verschlüsselung … <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt2.png" alt="" width="1012" height="732" class="size-full wp-image-8998" srcset="https://kofler.info/wp-content/uploads/u2510-crypt2.png 1012w, https://kofler.info/wp-content/uploads/u2510-crypt2-850x615.png 850w, https://kofler.info/wp-content/uploads/u2510-crypt2-768x556.png 768w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /> … und dann die Variante »Hardwaregestützte Verschlüsselung« auswählen Im nächsten Dialog können Sie den Entschlüsselung des Datenträgers von einem weiteren Passwort abhängig machen. (Der Key für die Verschlüsselung ist dann mit einem TPM-Key und mit Ihrer Passphrase abgesichert.) Sicherheitstechnisch ist das die optimale Variante, aber damit erfordert der Boot-Vorgang doch wieder zwei Passworteingaben. Da können Sie gleich bei der »normalen« Verschlüsselung bleiben, wo Sie das LUKS-Passwort zum Beginn des Boot-Prozesses eingeben. Ich habe mich bei meinen Tests auf jeden Fall gegen die zusätzliche Absicherung entschieden. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt3.png" alt="" width="1012" height="732" class="size-full wp-image-8999" srcset="https://kofler.info/wp-content/uploads/u2510-crypt3.png 1012w, https://kofler.info/wp-content/uploads/u2510-crypt3-850x615.png 850w, https://kofler.info/wp-content/uploads/u2510-crypt3-768x556.png 768w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /> Eine zusätzliche Passphrase macht das System noch sicherer, der Bequemlichkeits-Gewinn durch TPM geht aber verloren. Die Zusammenfassung der Konfiguration macht schon klar, dass das Setup ziemlich komplex ist. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt4.png" alt="" width="1012" height="732" class="size-full wp-image-9000" srcset="https://kofler.info/wp-content/uploads/u2510-crypt4.png 1012w, https://kofler.info/wp-content/uploads/u2510-crypt4-850x615.png 850w, https://kofler.info/wp-content/uploads/u2510-crypt4-768x556.png 768w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /> Der Installer richtet vier Partitionen ein: /boot/efi, /boot, / sowie eine zusätzliche Partition mit Seed-Daten Der Key für die Verschlüsselung wird zufällig generiert. Der Installer zeigt einen Recovery-Key in Textform und als QR-Code an. Diesen Key müssen Sie unbedingt speichern! Er ist erforderlich, wenn Sie den Datenträger in einen anderen Rechner übersiedeln, aber unter Umständen auch nach größeren Ubuntu- oder BIOS/EFI-Updates. Wenn Sie den Recovery-Key dann nicht mehr haben, sind Ihre Daten verloren! <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt5.png" alt="" width="1012" height="732" class="size-full wp-image-9001" srcset="https://kofler.info/wp-content/uploads/u2510-crypt5.png 1012w, https://kofler.info/wp-content/uploads/u2510-crypt5-850x615.png 850w, https://kofler.info/wp-content/uploads/u2510-crypt5-768x556.png 768w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /> Sie müssen den Recovery-Key unbedingt speichern oder aufschreiben! <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt6.png" alt="" width="1012" height="732" class="size-full wp-image-9002" srcset="https://kofler.info/wp-content/uploads/u2510-crypt6.png 1012w, https://kofler.info/wp-content/uploads/u2510-crypt6-850x615.png 850w, https://kofler.info/wp-content/uploads/u2510-crypt6-768x556.png 768w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /> Dieser QR-Code enthält einfach den darunter dargestellten Zahlencode. (Es handelt sich nicht um einen Link.) Nach dem Abschluss der Installation merken Sie beim nächsten Reboot nichts von der Verschlüsselung. Der Key zum Entschlüsseln der SSD/Festplatte wird vom TPM geladen und automatisch angewendet. Es bleibt nur der »gewöhnliche« Login. Als nächstes habe ich mir natürlich das resultierende System näher angesehen. /etc/fstab ist sehr aufgeräumt: cat /etc/fstab /run/mnt/ubuntu-boot/EFI/ubuntu /boot/grub none bind /swap.img none swap sw 0 0 Selbiges kann man von der Mount-Liste leider nicht behaupten. (Diverse Snap-Mounts habe ich weggelassen, außerdem habe ich diverse UUIDs durch xxx bzw. yyy ersetzt.) findmnt -t ext4,vfat TARGET SOURCE FSTYPE / /dev/mapper/ubuntu-data-xxx ext4 ├─/run/mnt/ubuntu-boot /dev/vda3 ext4 ├─/run/mnt/ubuntu-seed /dev/vda2 vfat ├─/run/mnt/data /dev/mapper/ubuntu-data-xxx ext4 │ ├─/run/mnt/data/usr/lib/firmware /dev/mapper/ubuntu-data-xxx[/var/.../firmware] ext4 │ └─/run/mnt/data/usr/lib/modules /dev/mapper/ubuntu-data-xxx[/var/.../modules] ext4 ├─/run/mnt/ubuntu-save /dev/mapper/ubuntu-save-yyy ext4 ├─/usr/lib/firmware /dev/mapper/ubuntu-data-xxx[/var/.../firmware] ext4 ├─/var/lib/snapd/seed /dev/vda2 vfat ├─/boot/grub /dev/vda3[/EFI/ubuntu] ext4 ├─/usr/lib/modules /dev/mapper/ubuntu-data-xxx[/var/.../modules] ext4 └─/var/lib/snapd/save /dev/mapper/ubuntu-save-yyy ext4 lsblk vda 253:0 0 32G 0 disk ├─vda1 253:1 0 1M 0 part ├─vda2 253:2 0 4,9G 0 part /var/lib/snapd/seed │ /run/mnt/ubuntu-seed ├─vda3 253:3 0 750M 0 part /boot/grub │ /run/mnt/ubuntu-boot ├─vda4 253:4 0 32M 0 part │ └─ubuntu-save-yyy 252:1 0 25M 0 crypt /var/lib/snapd/save │ /run/mnt/ubuntu-save └─vda5 253:5 0 26,4G 0 part └─ubuntu-data-xxx 252:0 0 26,3G 0 crypt /run/mnt/data/usr/lib/modules /usr/lib/modules /run/mnt/data/usr/lib/firmware /usr/lib/firmware / /run/mnt/data Die Partition ubuntu-save (Mount-Punkt /run/mnt/ubuntu-save) enthält lediglich eine JSON-Datei sowie ein paar Key-Dateien (ASCII). <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt8.png" alt="" width="1578" height="1404" class="size-full wp-image-9012" srcset="https://kofler.info/wp-content/uploads/u2510-crypt8.png 1578w, https://kofler.info/wp-content/uploads/u2510-crypt8-731x650.png 731w, https://kofler.info/wp-content/uploads/u2510-crypt8-1079x960.png 1079w, https://kofler.info/wp-content/uploads/u2510-crypt8-768x683.png 768w, https://kofler.info/wp-content/uploads/u2510-crypt8-1536x1367.png 1536w" sizes="auto, (max-width: 1578px) 100vw, 1578px" /> Die Partition »ubuntu-save« enthält lediglich einige Key-Dateien Ich bin ein großer Anhänger des KISS-Prinzips (Keep it Simple, Stupid!). Sollte bei diesem Setup etwas schief gehen, ist guter Rat teuer! Mit virtuellen Maschinen kann man schön spielen — und das habe ich nun gemacht. Ich habe eine zweite, neue VM eingerichtet, die 1:1 der ersten entspricht. Diese VM habe ich mit dem virtuellen Datenträger der ersten VM verbunden und versucht zu booten. Erwartungsgemäß ist das gescheitert, weil ja der TPM-Speicher bei der zweiten VM keine Keys enthält. (Das Experiment entspricht also dem Ausbau der Disk aus Rechner A und den Einbau in Rechner B.) Wichtig: Der Key ist ohne Bindestriche einzugeben. Die Eingabe erfolgt im Blindflug (ich weiß, Sicherheit), was bei 40 Ziffern aber sehr mühsam ist. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/u2510-crypt7-scaled.png" alt="" width="2560" height="1789" class="size-full wp-image-9011" srcset="https://kofler.info/wp-content/uploads/u2510-crypt7-scaled.png 2560w, https://kofler.info/wp-content/uploads/u2510-crypt7-850x594.png 850w, https://kofler.info/wp-content/uploads/u2510-crypt7-1280x895.png 1280w, https://kofler.info/wp-content/uploads/u2510-crypt7-768x537.png 768w, https://kofler.info/wp-content/uploads/u2510-crypt7-1536x1074.png 1536w, https://kofler.info/wp-content/uploads/u2510-crypt7-2048x1431.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /> Wird die Disk ausgebaut bzw. von einer anderen virtuellen Maschine genutzt, muss der Recovery-Key mühsam eingegeben werden. Immerhin hat der Boot-Vorgang anstandslos funktioniert — allerdings nur einmal. Beim nächsten Reboot muss der Recovery-Key neuerlich eingegeben werden. Ich habe keinen Weg gefunden, die Keys im TPM der zweiten virtuellen Maschine (Rechner B) zu verankern. Wenn sich wirklich die Notwendigkeit ergibt, die SSD in einen neuen Rechner zu migrieren, wäre das eine große Einschränkung. Danach habe ich wieder VM 1 gebootet. Dort hat alles funktioniert wie bisher. VM 1 hat also nicht bemerkt, dass die Disk vorübergehend in einem anderen Rechner genutzt und auch verändert wurde. Ich bin mir nicht sicher, ob das wünschenswert ist. Letztlich bleiben zwei Fragen offen: Wie sicher sind die Daten, wenn das Notebook in falsche Hände gerät? Wie sicher ist es, dass ich an meine eigenen Daten rankomme, wenn beim Setup etwas schief geht? Aus meiner persönlichen Sichtweise ist dieser zweiter Punkt der wichtigere. Die Vorstellung, dass nach einem Update der Boot-Prozess hängenbleibt und ich keinen Zugriff mehr auf meine eigenen Daten habe, auch keinen Plan B zur manuellen Rettung, ist alptraumhaft. Es ist diese Befürchtung, weswegen ich das System gegenwärtig nie in einem produktivem Setup verwende würde. Einfacher ist oft besser, und einfacher ist aktuell die »normale« LUKS-Verschlüsselung, auch wenn diese mit einer wenig eleganten Passwort-Eingabe bei jedem Boot-Prozess verbunden ist. Da weiß ich immerhin, wie ich zur Not auch aus einem Live-System heraus meine Daten lesen kann. Fazit Ubuntu 25.10 ist aus meiner Sicht ein mutiges, innovatives Release. Ich kann die Kritik daran nur teilweise nachvollziehen. Die Nicht-LTS-Releases haben nun einmal einen gewissen Test-Charakter und sind insofern mit Fedora-Releases zu vergleichen, die auch gelegentlich etwas experimentell sind. Das interessanteste neue Feature ist aus meiner Sicht definitiv die Speicherung der Crypto-Keys im TPM. Leider bin technisch nicht in der Lage, die Qualität/Sicherheit zu beurteilen. Noch hat das Feature einen experimentellen Status, aber falls TPM-Keys in Ubuntu 26.04 zu einem regulären Feature werden, würde es sich lohnen, das Ganze gründlich zu testen. Allerdings haben sich diese Mühe bisher wohl nur wenige Leute gemacht, was schade ist. Generell hätte ich beim TPM-Keys-Feature mehr Vertrauen, wenn sich Ubuntu mit Red Hat, Debian etc. auf eine distributionsübergreifende Lösung einigen könnte. Post Scriptum am 5.11.2025 Ich habe in den letzten Monaten aktuelle Versionen von CachyOS, Debian, Fedora, openSUSE und Ubuntu getestet. Immer wieder taucht die Frage auf, welche Distribution ich Einsteiger(inne)n empfehle. Ubuntu ist schon lange nicht mehr meine persönliche Lieblingsinstallation. Von den genannten fünf Distributionen hat Ubuntu aber definitiv das beste und einfachste Installationsprogramm. Und für den Start mit Linux ist das durchaus entscheidend … Quellen/Links https://canonical.com/blog/canonical-releases-ubuntu-25-10-questing-quokka https://discourse.ubuntu.com/t/questing-quokka-release-notes/59220 https://discourse.ubuntu.com/t/spec-switch-to-dracut/54776 https://uutils.github.io/ (Rust Utilities) https://github.com/trifectatechfoundation/sudo-rs https://www.phoronix.com/news/Ubuntu-25.10-Coreutils-Makeself https://bugs.launchpad.net/ubuntu/+source/rust-coreutils/+bug/2127970 https://bugs.launchpad.net/ubuntu/+source/flatpak/+bug/2122161 https://www.phoronix.com/news/Ubuntu-25.10-Broken-Flatpaks https://www.omgubuntu.co.uk/2025/10/flatpak-broken-ubuntu-25-10-apparmor-bug TPM https://de.wikipedia.org/wiki/Trusted_Platform_Module https://learn.microsoft.com/en-us/windows/security/hardware-security/tpm/switch-pcr-banks-on-tpm-2-0-devices https://canonical-ubuntu-desktop-documentation.readthedocs-hosted.com/en/latest/explanation/hardware-backed-disk-encryption https://en.ubunlog.com/Ubuntu-is-betting-on-encryption-with-TPM-2–which-is-controversial-but-not-at-all-like-Windows-0./ https://linuxsecurity.com/news/vendors-products/ubuntu-25-10-tpm-encryption Testberichte https://www.omgubuntu.co.uk/2025/10/ubuntu-25-10-new-features https://www.omgubuntu.co.uk/2025/10/flatpak-broken-ubuntu-25-10-apparmor-bug https://www.derstandard.at/story/3000000290393 https://heise.de/-10722802
Einige Wochen nach dem Release von Debian 13 »Trixie« hat die Raspberry Pi Foundation auch Raspberry Pi OS aktualisiert. Abseits der Versionsnummern hat sich wenig geändert. Raspberry Pi Imager Die »Installation« von Raspberry Pi OS funktioniert wie eh und je: Sie laden die für Ihr Betriebssystem passende Version des Raspberry Pi Imagers herunter und wählen … Raspberry Pi OS Trixie weiterlesen →
Einige Wochen nach dem Release von Debian 13 »Trixie« hat die Raspberry Pi Foundation auch Raspberry Pi OS aktualisiert. Abseits der Versionsnummern hat sich wenig geändert. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/pi-desktop.png" alt="" width="1920" height="1080" class="size-full wp-image-8983" srcset="https://kofler.info/wp-content/uploads/pi-desktop.png 1920w, https://kofler.info/wp-content/uploads/pi-desktop-850x478.png 850w, https://kofler.info/wp-content/uploads/pi-desktop-1280x720.png 1280w, https://kofler.info/wp-content/uploads/pi-desktop-768x432.png 768w, https://kofler.info/wp-content/uploads/pi-desktop-1536x864.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /> Der Raspberry Pi Desktop »PIXEL« sieht bis auf das Hintergrundbild ziemlich unverändert aus. Raspberry Pi Imager Die »Installation« von Raspberry Pi OS funktioniert wie eh und je: Sie laden die für Ihr Betriebssystem passende Version des Raspberry Pi Imagers herunter und wählen in drei Schritten Ihr Raspberry-Pi-Modell, die gewünschte Distribution und schließlich das Device Ihrer SD-Karte aus. Einfacher kann es nicht sein, würde man denken. Dennoch habe ich es geschafft, auf einem Rechner mit zwei SSDs (einmal Linux, diese SSD war aktiv in Verwendung, einmal Windows) die Installationsdaten auf die Windows-SSD statt auf die SD-Karte zu schreiben. Schuld war ich natürlich selbst, weil ich nur auf das Pictogram gesehen und nicht den nebenstehenden Text gelesen habe. Der Imager hat die SSD mit dem SD-Karten-Icon garniert. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/pi-imager3.png" alt="" width="1400" height="724" class="size-full wp-image-8980" srcset="https://kofler.info/wp-content/uploads/pi-imager3.png 1400w, https://kofler.info/wp-content/uploads/pi-imager3-850x440.png 850w, https://kofler.info/wp-content/uploads/pi-imager3-1280x662.png 1280w, https://kofler.info/wp-content/uploads/pi-imager3-768x397.png 768w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /> Vorsicht bei der Bedienung des Raspberry Pi Imagers! Wenn Sie möchten, können Sie im Imager eine Vorweg-Konfiguration durchführen. Das ist vor allem für den Headless-Betrieb praktisch, erspart aber auch erste Konfigurationsschritte im Assistenten, der beim ersten Start erscheint. Die Vorab-Konfiguration ist vor allem für den Headless-Betrieb (also ohne Tastatur und Monitor) praktisch. Versionsnummern Raspberry Pi OS Trixie profitiert mit dem Versionssprung vom neueren Software-Angebot in Debian Trixie. Die aktuelleren Versionsnummern sind gleichzeitig das Hauptargument, auf Raspberry Pi OS Trixie umzusteigen. Basis Programmierung Server --------------- -------------- --------------- Kernel 6.12 bash 5.2 Apache 2.4 glibc 2.41 gcc 14.2 CUPS 2.4 Wayland 1.23 git 2.47 MariaDB 11.8 NetworkMan 1.52 Java 21/25 OpenSSH 10.0 Mesa 25.0 PHP 8.4 PostgreSQL 17 Systemd 257 Python 3.13 Postfix 3.10 Samba 4.22 Einheitliche Konfiguration Die größte Änderung am Desktop »PIXEL« (vom Hintergrundbild abgesehen) betrifft die Konfiguration: Das Control Center umfasst nun auch Desktop-Einstellungen, die Bildschirm-Konfiguration und die Drucker-Konfiguration. Das ist definitiv ein Fortschritt im Vergleich zur bisher recht willkürlichen Aufteilung der Konfiguration über diverse Programme mit recht uneinheitlichem Erscheinungsbild. Das Konfigurationsprogramm umfasst nun wesentlich mehr Module gpioset Die Syntax von gpioset hat sich geändert (vermutlich schon vor einiger Zeit, aber mir ist es erst im Rahmen meiner Tests mit Raspberry Pi OS Trixie aufgefallen): Der gewünschte Chip (Nummer oder Device) muss mit der Option -c angegeben werden. Das Kommando läuft per Default endlos, weil es nur so den eingestellten Status der GPIOs garantieren kann. Wenn Sie wie bisher ein sofortiges Ende wünschen, übergeben Sie die Option -t 0. Beachten Sie, dass -t nicht die Zeit einstellt, sondern für ein regelmäßiges Ein- und Ausschalten gedacht ist (toggle). Ich habe die Logik nicht verstanden, aber -t 0 führt auf jeden Fall dazu, dass das Kommando sofort beendet wird. Alternativ kann das Kommando mit -z im Hintergrund fortgesetzt werden. Das folgende Kommando gilt für Chip 0 (/dev/gpiochip0) und somit für die »gewöhnlichen« GPIOs. Dank -t 0 wird das Kommando sofort beendet. gpioset -c 0 -t 0 7=1 # GPIO 7 (Pin 26) auf "high" stellen sleep 3 gpioset -c 0 -t 0 7=0 # GPIO 7 (Pin 26) auf "low" stellen Verwenden Sie besser das Kommando pinctrl, wenn Sie GPIOs im Terminal oder in bash-Scripts verändern wollen! Sonstiges Raspberry Pi OS verwendet nun per Default Swap on ZRAM. Nicht benötigte Speicherblöcke werden also komprimiert und in einer RAM-Disk gespeichert. Besonders gut funktioniert das bei Raspberry-Pi-Modellen mit viel RAM. Raspberry Pi OS wird keine Probleme mit dem Jahr 2038 haben. Die zugrundeliegenden Änderungen stammen von Debian und wurden einfach übernommen. Dank neuer Meta-Pakete ist es einfacher, von Raspberry Pi OS Lite auf die Vollversion umzusteigen. Das ist aus Entwicklersicht sicher erfreulich, der praktische Nutzen hält sich aber in Grenzen. Mathematica steht aktuell noch nicht zur Verfügung, die Pakete sollen aber bald nachgeliefert werden. Auch die Software für einige HATs (KI- und TV-Funktionen) müssen erst nachgereicht werden. Fazit Alles in allem ist das Raspberry-Pi-OS-Release unspektakulär. Das hat aber auch damit zu tun, dass Raspberry Pi OS bereits in den letztes Releases umfassend modernisiert wurde. Zur Erinnerung: Raspberry Pi OS verwendet Wayland, PipeWire, den NetworkManager etc., verhält sich also mittlerweile ganz ähnlich wie »normale« Linux-Distributionen. Diesmal gab es einfach weniger zu tun :-) Bei meinen bisherigen Tests sind mir keine Probleme aufgefallen. Umgekehrt gibt es aber auch so wenig Neuerungen, dass ich bei einem vorhandenen Projekt dazu rate, die Vorgängerversion Raspberry Pi OS »Bookworm« einfach weiterlaufen zu lassen. Die Raspberry Pi Foundation rät von Distributions-Updates ab, und der Nutzen einer Neuinstallation steht in keinem Verhältnis zum Aufwand. Und es nicht auszuschließen, dass mit den vielen Versions-Updates doch die eine oder andere Inkompatibilität verbunden ist. Quellen und Links https://www.raspberrypi.com/software https://www.raspberrypi.com/news/trixie-the-new-version-of-raspberry-pi-os https://github.com/raspberrypi-ui/rpd-metas https://www.heise.de/news/Raspberry-Pi-OS-wechselt-auf-Debian-Trixie-Basis-10722458.html https://kofler.info/debian-13-trixie https://stackoverflow.com/questions/77441261/is-it-possible-for-gpioset-version-2-0-2-to-exit-immediately
Tipp: Probleme mit Raspberry-Pi-Boot-Reihenfolge beheben
Mein Raspberry Pi 5 ist mit einem SSD-Hat ausgestattet (Pimoroni, siehe Blog). Auf der SSD ist Raspberry Pi OS Bookworm installiert. Jetzt möchte ich aber Raspberry Pi OS Trixie ausprobieren. Das System habe ich mit dem Raspberry Pi Imager auf eine SD-Card geschrieben. Sowohl SSD als auch SD-Karte sind angeschlossen, die Boot-Reihenfolge ist auf SD-Card … Tipp: Probleme mit Raspberry-Pi-Boot-Reihenfolge beheben weiterlesen →
Mein Raspberry Pi 5 ist mit einem SSD-Hat ausgestattet (Pimoroni, siehe Blog). Auf der SSD ist Raspberry Pi OS Bookworm installiert. Jetzt möchte ich aber Raspberry Pi OS Trixie ausprobieren. Das System habe ich mit dem Raspberry Pi Imager auf eine SD-Card geschrieben. Sowohl SSD als auch SD-Karte sind angeschlossen, die Boot-Reihenfolge ist auf SD-Card first eingestellt. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/pi-bootorder.png" alt="" width="1435" height="353" class="size-full wp-image-8969" srcset="https://kofler.info/wp-content/uploads/pi-bootorder.png 1435w, https://kofler.info/wp-content/uploads/pi-bootorder-850x209.png 850w, https://kofler.info/wp-content/uploads/pi-bootorder-1280x315.png 1280w, https://kofler.info/wp-content/uploads/pi-bootorder-768x189.png 768w" sizes="auto, (max-width: 1435px) 100vw, 1435px" /> Boot-Reihenfolge einstellen raspi-config verändert die Variable BOOT_ORDER, die im EEPROM gespeichert wird. Die Variable kann mit `rpi-eeprom-config´ gelesen werden: rpi-eeprom-config [all] BOOT_UART=0 WAKE_ON_GPIO=0 POWER_OFF_ON_HALT=1 BOOT_ORDER=0xf461 0xf461 bedeutet (die Auswertung erfolgt mit den niedrigsten Bits zuerst, also von rechts nach links): 1 - Try SD card 6 - Try NVMe 4 - Try USB mass storage f - RESTART (loop back to the beginning) Die Einstellung ist also korrekt, trotzdem bootet der Pi hartnäckig von der SSD und ignoriert die SD-Card. Warum? Analyse Schuld sind die Partition-UUIDs! Die SSD habe ich vor eineinhalb Jahren mit dem SD Card Copier geklont. Die Option New Partition UUIDs habe ich nicht verwendet, ich sah keinen Grund dazu. Jetzt liegt folgendes Problem vor: Die SSD und die vom Rasbperry Pi Imager erzeugte SD-Card haben die gleichen Partition-UUIDs! lsblk -o NAME,PARTUUID,UUID,MOUNTPOINT NAME PARTUUID UUID MOUNTPOINT mmcblk0 ├─mmcblk0p1 8a676486-01 1E1E-DAB6 /boot/firmware └─mmcblk0p2 8a676486-02 b8316dab-786b-45e8-815c-3d4bbf198d98 nvme0n1 ├─nvme0n1p1 8a676486-01 1E1E-DAB6 ├─nvme0n1p2 8a676486-02 b8316dab-786b-45e8-815c-3d4bbf198d98 / └─nvme0n1p3 8a676486-03 293896b6-33ee-43de-87d4-56944456cec6 Deswegen sind die UUIDs in /etc/fstab und in /boot/firmware/cmdline.txt nicht eindeutig: cat /etc/fstab proc /proc proc defaults 0 0 PARTUUID=8a676486-01 /boot/firmware vfat defaults 0 2 PARTUUID=8a676486-02 / ext4 defaults,noatime 0 1 cat /boot/firmware/cmdline.txt console=serial0,115200 console=tty1 root=PARTUUID=8a676486-02 rootfstype=ext4 \ fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=AT Solange beide Datenträger verbunden sind, ist nicht vorhersehbar, welche Partitionen tatsächlich genutzt werden. Am einfachsten wäre es natürlich, das Kabel zur SSD vorübergehend zu trennen; das ist aber nicht empfehlenswert, weil es hierfür keinen richtigen Stecker gibt, sondern nur eine sehr filigrane Kabelpressverbindungen, die möglichst nicht anrührt werden sollte. Lösung Ich habe den Pi ohne SD-Karte neu gebootet und dann die Filesystem-UUIDs geändert, /etc/fstab angepasst und /boot/firmware/cmdline.txt ebenfalls angepasst. Im Detail: Da die ursprüngliche Partitionierung der SSD von der SD-Karte übernommen wurde, liegt eine MBR-Partitionstabelle vor. In diesem Fall ergeben sich die Partition-UUIDs aus der Disk-ID plus Partitionsnummer. Die Disk-ID (Hex-Code mit 8 Stellen) kann mit fdisk geändert werden: fdisk /dev/nvme0n1 Welcome to fdisk (util-linux 2.38.1). Command (m for help): x. <-- aktiviert den Expertenmodus Expert command (m for help): i <-- ID ändern Enter the new disk identifier: 0x1234fedc. <-- neue ID als Hex-Code Disk identifier changed from 0x8a676486 to 0x1234fedc. Expert command (m for help): r <-- zurück ins Hauptmenü (return) Command (m for help): w <-- Änderungen speichern (write) The partition table has been altered. Syncing disks. Mit fdisk -l vergewissern Sie sich, dass die Änderung wirklich funktioniert hat: fdisk -l /dev/nvme0n1 ... Disk identifier: 0x1234fedc Weil der Datenträger in Verwendung ist, zeigt fdisk -l /dev/nvme0n1 weiter die alte UUID an. Sie müssen glauben, dass es funktioniert hat :-( Bevor Sie einen Reboot machen, müssen Sie nun mit einem Editor auch /etc/fstab und /boot/firmware/cmdline.txt anpassen. In meinem Fall sehen die Dateien jetzt so aus: cat /etc/fstab proc /proc proc defaults 0 0 PARTUUID=1234fedc-01 /boot/firmware vfat defaults 0 2 PARTUUID=1234fedc-02 / ext4 defaults,noatime 0 1 cat /boot/firmware/cmdline.txt console=serial0,115200 console=tty1 root=PARTUUID=1234fedc-02 rootfstype=ext4 \ fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=AT Jetzt ist ein Reboot fällig, um zu testen, ob alles funktioniert. (Bei mir hat es im ersten Versuch NICHT funktioniert, weil ich bei fdisk das write-Kommando vergessen habe. Dann muss die SSD ausgebaut, ein USB-Gehäuse mit einem Computer verbunden und der Vorgang wiederholt werden.) Ab jetzt sind die Partitions-UUIDs von SD-Karte und SSD voneinander unterscheidbar. Die Umschaltung des Boot-Systems mit raspi-config funktioniert, wie sie soll. Quellen/Links https://kofler.info/raspberry-pi-5-mit-pcie-ssd/ https://forums.raspberrypi.com/viewtopic.php?t=364985 https://forums.raspberrypi.com/viewtopic.php?p=2189368#p2189368 https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_ORDER https://askubuntu.com/questions/1250224/how-to-change-partuuid
Mit Version 16 springt openSUSE gewissermaßen in ein neues Zeitalter. Eine Weile war unklar, in welcher Form und auf welcher Basis openSUSE (überhaupt) weitergeführt wird. Letztlich haben sich die Entwickler zu einem pragmatischen Ansatz entschieden: Auch mit Version 16 bleibt openSUSE Leap eine »normale« Distribution mit Paket-Updates (kein Immutable System mit atomaren Updates) — so … openSUSE Leap 16 weiterlesen →
Mit Version 16 springt openSUSE gewissermaßen in ein neues Zeitalter. Eine Weile war unklar, in welcher Form und auf welcher Basis openSUSE (überhaupt) weitergeführt wird. Letztlich haben sich die Entwickler zu einem pragmatischen Ansatz entschieden: Auch mit Version 16 bleibt openSUSE Leap eine »normale« Distribution mit Paket-Updates (kein Immutable System mit atomaren Updates) — so wie der große Enterprise-Bruder SLES 16. Für diesen Artikel habe ich einen ersten Blick auf die Distribution geworfen. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-desktop-scaled.png" alt="" width="2560" height="1440" class="size-full wp-image-8957" srcset="https://kofler.info/wp-content/uploads/suse16-desktop-scaled.png 2560w, https://kofler.info/wp-content/uploads/suse16-desktop-850x478.png 850w, https://kofler.info/wp-content/uploads/suse16-desktop-1280x720.png 1280w, https://kofler.info/wp-content/uploads/suse16-desktop-768x432.png 768w, https://kofler.info/wp-content/uploads/suse16-desktop-1536x864.png 1536w, https://kofler.info/wp-content/uploads/suse16-desktop-2048x1152.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /> openSUSE Leap 16 mit KDE Desktop Installation openSUSE verwendet das neue, HTML-basiertes Installationsprogramm agama, dessen Minimalismus Parallelen zu Fedora zeigt. Das Programm läuft unter Gnome im Webbrowser Firefox im Full-Screen-Modus. Es ist mir zwar gelungen, den Voll-Screen-Modus zu beenden, ich konnte aber keine anderen Programme starten, d.h. es liegt kein vollwertiges Live-System vor. Tipp 1: Mit [Strg]+[+] bzw. [Strg]+[-] können Sie den Zoomfaktor verändern. Per Kontextmenüs können Sie Screenshots erstellen. Je nach (erkannter) Bildschirmauflösung wird das seitliche Menü nicht dauerhaft angezeigt, kann aber über den Menü-Button eingeblendet werden. Tipp 2: Es ist möglich, das Installationsprogramm von einem externen Rechner aus zu bedienen. Dazu wechseln Sie mit Strg+Alt+F1 in eine Konsole. Dort wird die URL (https://agama.local) und das Passwort angezeigt. Jetzt können Sie im Webbrowser die URL oder IP-Adresse angeben, müssen die unsichere Verbindung (selbst signiertes Zertifikat) akzeptieren und sich einloggen. Eigentlich cool! <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-install0.png" alt="" width="2422" height="1499" class="size-full wp-image-8942" srcset="https://kofler.info/wp-content/uploads/suse16-install0.png 2422w, https://kofler.info/wp-content/uploads/suse16-install0-850x526.png 850w, https://kofler.info/wp-content/uploads/suse16-install0-1280x792.png 1280w, https://kofler.info/wp-content/uploads/suse16-install0-768x475.png 768w, https://kofler.info/wp-content/uploads/suse16-install0-1536x951.png 1536w, https://kofler.info/wp-content/uploads/suse16-install0-2048x1268.png 2048w" sizes="auto, (max-width: 2422px) 100vw, 2422px" /> Die Installation läuft im Webbrowser, der aber normalerweise nicht sichtbar ist (Fullscreen-Modus) Ein Wechseln in die Textkonsole offenbart einen Login-Link zur Weboberfläche des Installers Im ersten Schritt stellen Sie rechts oben Sprache und Tastaturlayout für das Installationsprogramm ein und entscheiden Sie sich zwischen Leap 16 und Leap Micro 6.2. (Ich habe nur ersteres ausprobiert.) <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-install1.png" alt="" width="2456" height="1511" class="size-full wp-image-8943" srcset="https://kofler.info/wp-content/uploads/suse16-install1.png 2456w, https://kofler.info/wp-content/uploads/suse16-install1-850x523.png 850w, https://kofler.info/wp-content/uploads/suse16-install1-1280x787.png 1280w, https://kofler.info/wp-content/uploads/suse16-install1-768x472.png 768w, https://kofler.info/wp-content/uploads/suse16-install1-1536x945.png 1536w, https://kofler.info/wp-content/uploads/suse16-install1-2048x1260.png 2048w" sizes="auto, (max-width: 2456px) 100vw, 2456px" /> Einstellung der Sprache des Setup-Programms (rechts oben) und Auswahl des Grundsystems Jetzt beginnt die eigentliche Installation. Wenn Sie einen statischen Hostnamen wünschen, geben Sie den gewünschten Namen an. Unter Lokalisierung stellen Sie nochmals (!) Sprache, Tastatur und Zeitzone ein — dieses Mal für das zu installierende System. Eleganter wäre, wenn der Installer die bereits durchgeführten Einstellungen einfach übernehmen würde, aber sei’s drum. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-install2.png" alt="" width="2458" height="1357" class="size-full wp-image-8944" srcset="https://kofler.info/wp-content/uploads/suse16-install2.png 2458w, https://kofler.info/wp-content/uploads/suse16-install2-850x469.png 850w, https://kofler.info/wp-content/uploads/suse16-install2-1280x707.png 1280w, https://kofler.info/wp-content/uploads/suse16-install2-768x424.png 768w, https://kofler.info/wp-content/uploads/suse16-install2-1536x848.png 1536w, https://kofler.info/wp-content/uploads/suse16-install2-2048x1131.png 2048w, https://kofler.info/wp-content/uploads/suse16-install2-672x372.png 672w" sizes="auto, (max-width: 2458px) 100vw, 2458px" /> Neuerliche Spracheinstellung, jetzt für das Zielsystem Im Punkt Netzwerk können Sie eine WLAN-Konfiguration durchnehmen. Ethernet-Verbindungen mit DHCP werden automatisch hergestellt. Damit kommen wir zur Partitionierung und zum Einrichten der Dateisystemeim Punkt Speicherung. Der Installer schlägt vor, drei Partitionen einzurichten: /boot/efi, eine Swap-Partition und eine Systempartition mit btrfs-Dateisystem und neu Subvolumes (/boot, /var, /root, /home usw.). Optional können Sie das Setup auf LVM umstellen (was im Zusammenspiel mit btrfs aber selten große Vorteile mit sich bringt) und eine Verschlüsselung aktivieren. Für Installationen in eine virtuelle Maschine oder auf einen Rechner, wo Sie einfach die gesamte SSD nutzen möchten, ist das Layout OK. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-install3.png" alt="" width="2433" height="1513" class="size-full wp-image-8945" srcset="https://kofler.info/wp-content/uploads/suse16-install3.png 2433w, https://kofler.info/wp-content/uploads/suse16-install3-850x529.png 850w, https://kofler.info/wp-content/uploads/suse16-install3-1280x796.png 1280w, https://kofler.info/wp-content/uploads/suse16-install3-768x478.png 768w, https://kofler.info/wp-content/uploads/suse16-install3-1536x955.png 1536w, https://kofler.info/wp-content/uploads/suse16-install3-2048x1274.png 2048w" sizes="auto, (max-width: 2433px) 100vw, 2433px" /> Wenig Auswahl bei der Partitionierung und Einrichtung der Dateisysteme Auf »echter« Hardware schlägt das Setup-Programm vor, alle vorhandenen Partitionen des Datenträgers zu löschen und dann openSUSE zu installieren. VORSICHT!! Das Setup-Programm bietet die Möglichkeit, auf die Partitionierung Einfluss zu nehmen, die Menüs sind aber nicht ganz leicht zu erkennen (siehe die folgenden fünf Screenshots). <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-realinstall1.png" alt="" width="1920" height="1094" class="size-full wp-image-8951" srcset="https://kofler.info/wp-content/uploads/suse16-realinstall1.png 1920w, https://kofler.info/wp-content/uploads/suse16-realinstall1-850x484.png 850w, https://kofler.info/wp-content/uploads/suse16-realinstall1-1280x729.png 1280w, https://kofler.info/wp-content/uploads/suse16-realinstall1-768x438.png 768w, https://kofler.info/wp-content/uploads/suse16-realinstall1-1536x875.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /> Vorsicht: Per Default löscht der Installer alle vorhandenen Betriebssysteme <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-realinstall2.png" alt="" width="1600" height="711" class="size-full wp-image-8952" srcset="https://kofler.info/wp-content/uploads/suse16-realinstall2.png 1600w, https://kofler.info/wp-content/uploads/suse16-realinstall2-850x378.png 850w, https://kofler.info/wp-content/uploads/suse16-realinstall2-1280x569.png 1280w, https://kofler.info/wp-content/uploads/suse16-realinstall2-768x341.png 768w, https://kofler.info/wp-content/uploads/suse16-realinstall2-1536x683.png 1536w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /> Eine manuelle Partitionierung ist möglich, aber die Optionen sind gut versteckt <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-realinstall3.png" alt="" width="1920" height="854" class="size-full wp-image-8953" srcset="https://kofler.info/wp-content/uploads/suse16-realinstall3.png 1920w, https://kofler.info/wp-content/uploads/suse16-realinstall3-850x378.png 850w, https://kofler.info/wp-content/uploads/suse16-realinstall3-1280x569.png 1280w, https://kofler.info/wp-content/uploads/suse16-realinstall3-768x342.png 768w, https://kofler.info/wp-content/uploads/suse16-realinstall3-1536x683.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /> Wenn Sie einzelne Partitionen oder Dateisysteme ändern wollen, ist hier das entscheidende Menü <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-realinstall4.png" alt="" width="1785" height="1278" class="size-full wp-image-8955" srcset="https://kofler.info/wp-content/uploads/suse16-realinstall4.png 1785w, https://kofler.info/wp-content/uploads/suse16-realinstall4-850x609.png 850w, https://kofler.info/wp-content/uploads/suse16-realinstall4-1280x916.png 1280w, https://kofler.info/wp-content/uploads/suse16-realinstall4-768x550.png 768w, https://kofler.info/wp-content/uploads/suse16-realinstall4-1536x1100.png 1536w" sizes="auto, (max-width: 1785px) 100vw, 1785px" /> Der Editor für eine Partition / ein Dateisystem <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-realinstall5-scaled.png" alt="" width="2560" height="2242" class="size-full wp-image-8954" srcset="https://kofler.info/wp-content/uploads/suse16-realinstall5-scaled.png 2560w, https://kofler.info/wp-content/uploads/suse16-realinstall5-742x650.png 742w, https://kofler.info/wp-content/uploads/suse16-realinstall5-1096x960.png 1096w, https://kofler.info/wp-content/uploads/suse16-realinstall5-768x673.png 768w, https://kofler.info/wp-content/uploads/suse16-realinstall5-1536x1345.png 1536w, https://kofler.info/wp-content/uploads/suse16-realinstall5-2048x1793.png 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /> Parallel-Installation von openSUSE zu diversen anderen Linux-Distributionen Aufpassen müssen Sie auch beim Punkt Software: Standardmäßig wird nur eine Minimalinstallation ohne Desktop-System durchgeführt! Sie müssen die Auswahl ändern und haben dann die Wahl zwischen Gnome, KDE und XFCE. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-install4.png" alt="" width="1920" height="2040" class="size-full wp-image-8950" srcset="https://kofler.info/wp-content/uploads/suse16-install4.png 1920w, https://kofler.info/wp-content/uploads/suse16-install4-612x650.png 612w, https://kofler.info/wp-content/uploads/suse16-install4-904x960.png 904w, https://kofler.info/wp-content/uploads/suse16-install4-768x816.png 768w, https://kofler.info/wp-content/uploads/suse16-install4-1446x1536.png 1446w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /> Bei der Software-Auswahl muss ein Desktop-System ausgewählt werden! Zuletzt richten Sie einen Benutzer ein, der automatisch sudo-Rechte erhält. Installieren startet nun die Installation. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-install6.png" alt="" width="1934" height="436" class="size-full wp-image-8947" srcset="https://kofler.info/wp-content/uploads/suse16-install6.png 1934w, https://kofler.info/wp-content/uploads/suse16-install6-850x192.png 850w, https://kofler.info/wp-content/uploads/suse16-install6-1280x289.png 1280w, https://kofler.info/wp-content/uploads/suse16-install6-768x173.png 768w, https://kofler.info/wp-content/uploads/suse16-install6-1536x346.png 1536w" sizes="auto, (max-width: 1934px) 100vw, 1934px" /> Jetzt läuft die Installation Ich habe mehrere Installationen in VMs durchgeführt, eine »echte« auf meinen Mini-PC. Echte Fehler sind keine aufgetreten, aber intuitiv ist die Bedienung des neuen Installers wirklich nicht. Warum muss das Rad ununterbrochen neu erfunden werden, wenn soviele andere Linux-Probleme einer Lösung harren? Software-Versionen und Paketverwaltung Die Versionsnummern wichtiger Basispakete stimmen zum größten Teil mit jenen von Debian 13 überein. Basis Programmierung Server --------------- -------------- --------------- Kernel 6.12 bash 5.2 Apache 2.4 glibc 2.40 gcc 15.1 CUPS 2.4 Wayland 1.24 git 2.51 MariaDB 11.8 GRUB 2.12 Java 17/21 OpenSSH 10.0 Mesa 24.3 PHP 8.4 PostgreSQL 17 Systemd 257 Podman 5.4 Postfix 3.10 NetworkMan 1.52 Python 3.13 qemu/KVM 10.0 Gnome 48 Samba 4.22 KDE Plasma 6.4 Generell ist das Angebot in Leap 16 im Vergleich zu den Vorgängerversionen 15.n aber geschrumpft, worauf LinuxUser hinweist (32.400 Pakete im Vergleich zu 44.700). Für Desktop-Programme ist Flatpak die beste Alternative. Darüberhinaus wird sich weisen, wie groß das Angebot von Paketen sein wird, die in externen Repositories angeboten werden. Für Multimedia-Pakete war in der Vergangenheit Packman zuständig. Es ist zu erwarten, dass es dort in Zukunft ein Leap-16-Repository geben wird. Aktuell ist das aber noch nicht der Fall. Am Fundament der Paketverwaltung hat sich wenig geändert — dafür sind weiterhin rpm (Low-Level) und zypper (High-level) zuständig. Desktop-Programme können wahlweise mit Software (Gnome) oder Discover (KDE) installiert werden. Das allumfassende Paketverwaltungs-Modul innerhalb von YaST gibt es nicht mehr. Standardmäßig sind nur die Repos repo-oss und repo-openh264 aktiv: zypper repos Repository priorities are without effect. All enabled repositories share the same priority. # | Alias | Name | Enabled | GPG Check | Refresh --+-----------------------------+---------------------------+---------+-----------+-------- 1 | Leap | Leap 16.0 | No | ---- | ---- 2 | openSUSE:repo-non-oss | repo-non-oss (16.0) | No | ---- | ---- 3 | openSUSE:repo-non-oss-debug | repo-non-oss-debug (16.0) | No | ---- | ---- 4 | openSUSE:repo-openh264 | repo-openh264 (16.0) | Yes | (r ) Yes | Yes 5 | openSUSE:repo-oss | repo-oss (16.0) | Yes | (r ) Yes | Yes 6 | openSUSE:repo-oss-debug | repo-oss-debug (16.0) | No | ---- | ---- 7 | openSUSE:repo-oss-source | repo-oss-source (16.0) | No | ---- | ---- Für Verwirrung — auch in Software und Discover — kann das inaktive Repo Leap 16.0 sorgen. Es bezieht sich aber nur auf das Installationsmedium und wird im weiteren Betrieb tatsächlich nicht mehr gebraucht. Das non-oss-Repo enthält diverse proprietäre Programme: zypper modifyrepo --enable openSUSE:repo-non-oss AdobeICCProfiles bladeRF-fpga-firmware bladeRF-fx3-firmware bpg-fonts discord iozone iozone-doc ivtv-firmware john-wordlists Leap-Addon-NonOss Leap-Addon-NonOss-release libunrar-devel libunrar7_1_10 libunrar7_1_10-x86-64-v3 ncat ndiff netperf nmap non_oss nping opera patterns-non_oss patterns-non_oss_opt perlref Reaction Reaction-data steamcmd stream unrar wine-mono xv xv-doc zenmap Erste Schritte unter KDE Ich habe openSUSE sowohl mit Gnome als auch mit KDE installiert, aber die weiteren Tests dann in einem KDE-System durchgeführt. KDE verwendet sowohl in virtuellen Maschinen als auch auf echter Hardware X11. Das ist ein wenig enttäuschend, Fedora 42 läuft per default mit Wayland (Fedora 43 beta natürlich auch), und meine Erfahrungen damit waren ausgezeichnet. Der Versuch, die Auflösung meines 4k-Monitors auf 1920×1080 zu reduzieren, scheiterte. Der Bildschirminhalt wird komplett falsch skaliert, oben und unter im Monitor bleibt ein schwarzer Streifen. Bei 2560×1600 kam gar kein Bild zustande. Diese Probleme hatte ich noch nie. Ich bin dann bei der 4k-Auflösung geblieben und habe die Skalierung verändert. Das funktioniert unter KDE glücklicherweise wunderbar. Zur Paketverwaltung ist Discover vorgesehen. Prinzipiell funktioniert das Programm zufriedenstellend. Irritierend ist auch hier die (korrekt!) inaktive Paketquelle Leap 16. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-discover.png" alt="" width="1658" height="1521" class="size-full wp-image-8958" srcset="https://kofler.info/wp-content/uploads/suse16-discover.png 1658w, https://kofler.info/wp-content/uploads/suse16-discover-709x650.png 709w, https://kofler.info/wp-content/uploads/suse16-discover-1046x960.png 1046w, https://kofler.info/wp-content/uploads/suse16-discover-768x705.png 768w, https://kofler.info/wp-content/uploads/suse16-discover-1536x1409.png 1536w" sizes="auto, (max-width: 1658px) 100vw, 1658px" /> Paketverwaltung mit Discover. Es irritiert, dass »Leap 16« nicht aktiv ist — aber diese Paketquelle ist nur für die Installation relevant, danach nicht mehr. Bei der Systemadministration sind Sie auf die Module der KDE-Systemeinstellungen angewiesen. YaST steht nicht mehr zur Verfügung. Wie schon erwähnt, entscheidet sich der Installer, wenn Sie nicht andere Optionen einstellen, für ein btrfs-Dateisystem mit vielen Subvolumes aber ohne Komprimierung. cat /etc/fstab UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 / btrfs defaults 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /var btrfs subvol=/@/var 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /usr/local btrfs subvol=/@/usr/local 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /srv btrfs subvol=/@/srv 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /root btrfs subvol=/@/root 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /opt btrfs subvol=/@/opt 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /home btrfs subvol=/@/home 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi 0 0 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc 0 0 UUID=EC5D-8DB9 /boot/efi vfat utf8 0 2 UUID=c3b4e719-0afe-4ad0-aea0-ad6a8c5c81e1 /.snapshots btrfs subvol=/@/.snapshots 0 0 lsblk nvme1n1 259:6 0 1.8T 0 disk ├─nvme1n1p1 259:7 0 372.5G 0 part ├─nvme1n1p2 259:8 0 1G 0 part /boot/efi ├─nvme1n1p3 259:9 0 400G 0 part ├─nvme1n1p4 259:10 0 100G 0 part ├─nvme1n1p5 259:11 0 200G 0 part ├─nvme1n1p6 259:12 0 279.4G 0 part ├─nvme1n1p7 259:13 0 244.1G 0 part └─nvme1n1p8 259:14 0 100G 0 part /var /usr/local /srv /root /opt /home /boot/grub2/i386-pc /boot/grub2/x86_64-efi /.snapshots / Neuerungen Hinter den Kulissen gibt es eine Menge Neuerungen im Vergleich zu Version 15.n (siehe die Release Notes). Ganz kurz die wichtigsten Details: Wie schon erwähnt: YaST gibt es nicht mehr. openSUSE empfiehlt, Cockpit zur Administration zu verwenden. Per Default kommt SELinux zum Einsatz, AppArmor ist immerhin noch als Option verfügbar. openSUSE 16 ist year-2038-safe. openSUSE 16 soll bis 2031 jährlich mit neuen Versionen gepflegt werden. (Das wäre dann Version 16.6.) openSUSE 17 soll dann 2032 erscheinen. Warten wir ab, ob es dabei bleibt. openSUSE 16 setzt bei x86-CPUs den V2-Level voraus. Konkret bedeutet das, dass die CPUs nicht älter als gut 15 Jahre sein dürfen (Details). 32-Bit-CPUs werden nicht mehr unterstützt. Auf Rechnern mit NVIDIA-GPU werden die entsprechenden Paketquellen automatisch aktiviert und die proprietären Treiber installiert. Solche Systeme sollte jetzt out-of-the-box funktionieren. (Habe ich aber nicht getestet, mein Testrechner hat eine AMD-CPU/GPU.) PulseAudio wurde durch PipeWire ersetzt. Per Default darf root sich nicht via SSH anmelden. Verwenden Sie einen Account mit sudo-Rechten, oder ändern Sie ggfs. /etc/ssh/sshd_config. libvirt + Docker: Wenn Sie Docker und libvirt (Qemu/KVM) einsetzen, funktioniert in den virtuellen Maschinen das Networking nicht mehr. Schuld ist Docker, das nicht in der Lage ist, sein Firewall-System auf nft umzustellen :-( Die Lösung ist gleich wie unter Fedora: Sie müssen das libvirt-Firewall-Backend zurück auf iptables setzen (Details). nmap: Das populäre nmap-Tool hat die Lizenz geändert. openSUSE enthält die letzte Version unter der alten Lizenz. Migrationstool Es gibt ein neues Migrationstool, mit dem Sie einerseits openSUSE 15.6 auf Version 16.0 upgraden und andererseits einen Wechsel zwischen verschiedenen SUSE-Varianten (Leap, Tumblewheed, Slowroll, Enterprise) durchführen können. Ich habe das Programm allerdings nicht ausprobiert. <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/suse16-migration-tool.png" alt="" width="1732" height="1065" class="size-full wp-image-8960" srcset="https://kofler.info/wp-content/uploads/suse16-migration-tool.png 1732w, https://kofler.info/wp-content/uploads/suse16-migration-tool-850x523.png 850w, https://kofler.info/wp-content/uploads/suse16-migration-tool-1280x787.png 1280w, https://kofler.info/wp-content/uploads/suse16-migration-tool-768x472.png 768w, https://kofler.info/wp-content/uploads/suse16-migration-tool-1536x944.png 1536w" sizes="auto, (max-width: 1732px) 100vw, 1732px" /> Das neue opensuse-migration-tool SSH-Server und Firewall Der SSH-Server wird standardmäßig installiert, läuft aber nicht. Abhilfe: systemctl enable --now sshd Als Firewall läuft standardmäßig das von Fedora und RHEL bekannte Programm firewalld. Standardmäßig sind nur die Ports für SSH und den DHCP-Client offen: firewall-cmd --list-services dhcpv6-client ssh Qemu/KVM-Zwischenablage Wenn Sie openSUSE 16 in einer virtuellen Maschine mit Qemu ausführen, funktioniert die Zwischenablage nicht. Abhilfe: zypper install spice-vdagent, unter Gnome (Wayland!) zusätzlich zypper install wl-clipboard. Fazit In openSUSE 16 ist viel Zeit, Mühe und Liebe geflossen — und das Ergebnis kann sich wirklich sehen lassen. Die Frage ist allerdings, ob das reicht. Das Angebot am Distributionsmarkt ist überwältigend groß, und mir fällt es ehrlich schwer, eine klare Zielgruppe für openSUSE zu erkennen. Den Mainstream decken Debian, Fedora und Ubuntu ab. Meine Empfehlung an Linux-Desktop-Einsteiger geht ganz stark in diese Richtung. Server-seitig wieder Debian und Ubuntu plus RHEL und Klone. Wer gerne immer Up-to-date ist: Arch Linux (oder ein Derivat). CachyOS kitzelt maximale Performance aus dem Rechner, verbunden mit den Arch-Linux-Vorteilen und aktuell einem Hype-Faktor. Linux Mint vielleicht für Einsteiger. (Ich war allerdings nie ein riesiger Mint-Fan und sehe wenig Vorteile im Vergleich zu Debian/Fedora/Ubuntu.) Pop!_OS als Distribution für system76-Kunden. Und falls der COSMIC-Desktop je fertig + stabil wird, könnte die Distribution ein interessantes Angebot für technisch orientierte Anwender werden (Entwickler/Admins/Freaks). Im Vergleich zu Debian/Fedora/Ubuntu ist in Leap 16 das Software-Angebot geringer. Die Aktualität vieler Pakete kann wiederum mit Fedora und Ubuntu nicht mithalten. Als ausgesprochen einsteigerfreundlich empfinde ich Leap auch nicht (schon gar nicht die Installation). YaST als Argument fällt weg. (Das Konfigurations-Tool wurde schon in den letzten Jahren nur noch sehr halbherzig gepflegt.) Der Dateisystem-Editor von openSUSE während der Installation war Weltklasse, aus meiner Sicht besser als bei allen anderen Distributionen. Er ist dem neuen Installationsprogramm zum Opfer gefallen. Wer sollte sich also für openSUSE entscheiden, und warum? openSUSE 16 ist natürlich eine super Trainings-Umgebung für SLES 16. Aber ist das genug? Selbst innerhalb der SUSE-Welt empfand ich Tumblewheel (oder Slowroll) in den letzten Jahren deutlich spannender als Leap. Quellen/Links https://get.opensuse.org https://news.opensuse.org/2025/10/01/next-chapter-opens-with-leap-release/ https://github.com/agama-project/agama https://news.opensuse.org/2025/10/01/migrating-to-leap-16-with-opensuse-migration-tool https://doc.opensuse.org/release-notes/x86_64/openSUSE/Leap/16.0/html/release-notes-leap-160/ https://doc.opensuse.org/release-notes/x86_64/openSUSE/Leap/16.0/html/release-notes-leap-160/index.html#id-networking https://doc.opensuse.org/release-notes/x86_64/openSUSE/Leap/16.0/html/release-notes-leap-160/index.html#v160-nmap-deprecation-notice https://github.com/openSUSE/opensuse-migration-tool https://en.opensuse.org/X86-64_microarchitecture_levels https://www.linux-community.de/ausgaben/linuxuser/2025/10/opensuse-leap-16-in-der-praxis/ https://www.linux-community.de/ausgaben/linuxuser/2025/03/status-der-entwicklung-von-opensuse-leap-16-0/3/
Ganz frisch zu Java 25 erscheint diese Woche die fünfte Auflage meines Java-Grundkurses. Das Buch richtet sich an Schüler, Studentinnen und alle, die gerade Java lernen oder von einer anderen Programmiersprache auf Java umsteigen möchten. Im handlichen Taschenbuchformat fasst das Buch die Syntax von Java in seiner aktuellen Form zusammen. Das Buch berücksichtigt dabei die … 📚 Java-Grundkurs (5. Aufl.) weiterlesen →
Ganz frisch zu Java 25 erscheint diese Woche die fünfte Auflage meines Java-Grundkurses. Das Buch richtet sich an Schüler, Studentinnen und alle, die gerade Java lernen oder von einer anderen Programmiersprache auf Java umsteigen möchten. Im handlichen Taschenbuchformat fasst das Buch die Syntax von Java in seiner aktuellen Form zusammen. Das Buch berücksichtigt dabei die vielen in Java 25 endlich verfügbaren Vereinfachungen, die gerade Einsteigern sehr entgegenkommen. 100 Beispiele und Übungen (inkl. Lösungen!) führen von der Theorie in die Praxis. Alle Beispieldateien liegen in zwei Versionen vor, einmal aktuell zu Java 25 und einmal für ältere Java-Installationen, wie sie gerade im Schulbetrieb leider üblich sind.
Java 25 — Long-awaited Teacher’s Standard
Java ist 30 Jahre alt und feiert gerade das Release »Java 25 LTS«. LTS steht eigentlich für Long Time Support (von dem aber nur zahlende Kunden profitieren), aber aus meiner Sicht ist Java 25 eine spezielle Teacher’s Edition. ENDLICH ist es möglich, »Hello, World!« in drei kurzen Zeilen zu formulieren: void main() { IO.println("Hello, World!"); … Java 25 — Long-awaited Teacher’s Standard weiterlesen →
Java ist 30 Jahre alt und feiert gerade das Release »Java 25 LTS«. LTS steht eigentlich für Long Time Support (von dem aber nur zahlende Kunden profitieren), aber aus meiner Sicht ist Java 25 eine spezielle Teacher’s Edition. ENDLICH ist es möglich, »Hello, World!« in drei kurzen Zeilen zu formulieren: void main() { IO.println("Hello, World!"); } Wenn Sie jetzt einwenden, dass das reichlich irrelevant ist, angesichts anderer, viel wichtiger Neuerungen für Java-Profis, dann haben Sie noch nie Java unterrichtet. Java als »First Programming Language« Persönlich bin ich der Meinung, dass Python als erste Programmiersprache für blutige Einsteiger und Einsteigerinnen, junge Schüler und schon etwa ältere Studentinnen besser geeignet ist. Fakt ist aber, dass immer noch viele Schulen, Fachhochschulen und Universitäten auf Java setzen. Zwei Argumente sprechen dafür: Die Features rund um die Objektorientierung und Typengenauigkeit sind in Java klarer ausgeprägt als in Python. Und im Unterschied zu deutlich moderneren Sprachen (mir kommen vor allem Swift und Kotlin in den Sinn) ist Java bis heute eine weitverbreitete Sprache, kein Nischenprodukt. Im Tiobe-Index, pendelt Java seit Jahren zwischen Platz zwei und vier. Das ist mehr als nur respektabel. Was ist nun neu in Java 25, dass ich so euphorisch bin? Bisher sah das minimale Gerüst für das erste Java-Programm so aus: public class Main { public static void main(String[] args) { System.out.println("Hello, World!"); } } In der ersten Unterrichtsstunde haben Sie als Lehrer/Lektorin die Wahl: Entweder Sie präsentieren diese fünf Zeilen und sagen dazu: »Das könnt ihr noch nicht verstehen. Ich erkläre die Details später. Aber in den nächsten Stunden lernen wir zuerst einmal, was Variablen, Schleifen und Verzweigungen sind, und wir werden IMMER diesen Code verwenden und nur die mittlere Zeile durch anderen Code ersetzen. Der Rest ist magic dust, aber halt notwendig.« Oder Sie versuchen zu erklären, dass Java eine objektorientierte Sprache ist, daher alles in Klassen formuliert werden muss. (Objekt versus Klasse) Dass es unterschiedliche Sichtbarkeitsebenen gibt (public). Dass der eigentliche Code in Methoden formuliert wird. Dass es aber zwei Arten von Methoden gibt, »normale« und statische. Dass an Methoden Parameter (Argumente) übergeben werden können. Das wollen wir jetzt gar nicht, aber die main-Methode ist besonders, und wir müssen dennoch String[] args angeben. Jetzt haben wir den Datentyp bzw. die Klasse String. Und Arrays. Na ja. Wir wollen etwas ausgeben: Methode println, das kann man verstehen. Aber was ist System? Und was, um alles in der Welt, ist out? Wenn Sie schon seit drei Jahren oder drei Jahrzehnte mit Java arbeiten, werden Sie sich über all diese Details natürlich keine Gedanken mehr machen. Aber versuchen Sie sich in eine Person zu versetzen, die die ersten Zeilen Code schreibt. Neu in Java 25 Im JDK Enhancement Proposal 512 ist zusammengefasst, wie Java vereinfacht werden kann, ohne alle Grundsätze über den Haufen zu werfen. Die Kurzfassung lautet so: In einfachen Fällen ist es erlaubt, auf die Deklaration von Klassen zu verzichten. Der Java-Compiler verpackt den Code dann in eine Standardklasse. In eben diesem Fall darf auch auf static verzichtet werden. Ohne explizite Klasse kein Objekt. Derart freistehende Methoden werden ohne Objekt angewendet, die Unterscheidung statisch und nicht statisch ist irrelevant. Auch die Zugriffsebenen sind irrelevant, wenn unser Programm keine expliziten Klassen hat. public entfällt. Der Parameter String[] args von main darf auch weggelassen werden. Dann können dann natürlich keine Parameter an main übergeben. Aber solange wir das gar nicht wollen, wozu das String-Array? Weg damit! Für System.out gibt es die Kurzschreibweise IO. Hier haben sich die Java-Entwickler schwer getan. Noch eleganter wäre es gewesen, auch IO wegzulassen. Aber Methoden werden ja auf Objekte angewendet, dieses Grundprinzip sollte erhalten bleiben. Und dann ist IO immer noch besser als System.out. Die Kurzschreibweise IO ist nur für print, println und readln erlaubt, nicht für printf oder format. Aber ich will jetzt nicht mäkeln. Die letzte Vereinfachung ist im Hello-World-Code nicht zu sehen. Es gilt ein Default-Import für alle Pakete aus dem java.base-Modul (unter anderem java.lang, java.util, java.io, java.nio, java.net, java.text und java.time) . Listen, Sets, Zufallszahlen können ohne import verwendet werden. Hurra! Kurz zusammengefasst: In den ersten Unterrichtsstunden/-wochen, in denen Sie vermitteln wollen, was »Programmieren« heißt, was eine Variable ist, wie eine Schleife funktioniert, müssen Sie sich nicht mehr mit Java-Feinheiten beschäftigen, die für Ihre Zuhörer ohnedies noch unbegreiflich sind. Also zumindest ich bin EXTREM glücklich mit Java 25. Wenn Sie IntelliJ als Entwicklungsumgebung verwenden, müssen Sie darauf achten, dass Sie die neueste Version installieren und natürlich das JDK 25 zur Verfügung steht. Achten Sie auch auf die richtigen Projekteinstellungen! <img loading="lazy" decoding="async" src="https://kofler.info/wp-content/uploads/intellij-2025-2-scaled.jpg" alt="" width="2560" height="2132" class="size-full wp-image-8914" srcset="https://kofler.info/wp-content/uploads/intellij-2025-2-scaled.jpg 2560w, https://kofler.info/wp-content/uploads/intellij-2025-2-781x650.jpg 781w, https://kofler.info/wp-content/uploads/intellij-2025-2-1153x960.jpg 1153w, https://kofler.info/wp-content/uploads/intellij-2025-2-768x640.jpg 768w, https://kofler.info/wp-content/uploads/intellij-2025-2-1536x1279.jpg 1536w, https://kofler.info/wp-content/uploads/intellij-2025-2-2048x1706.jpg 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /> Java 25 macht das Programmieren Lernen spürbar einfacher (und den Unterricht noch mehr!) Links / Quellen Es gibt in Java 25 natürlich eine Menge weiterer Neuerungen. Dazu gibt es schon viele Artikel, so dass ich mir hier nicht die Mühe machen muss, alles zu wiederholen: https://www.oracle.com/news/announcement/oracle-releases-java-25-2025-09-16/ https://openjdk.org/projects/jdk/25/ https://heise.de/-10530625 https://jax.de/blog/java-25-neuerungen-features-ueberblick/ https://blog.jetbrains.com/idea/2025/09/java-25-lts-and-intellij-idea/ https://www.happycoders.eu/java/java-25-features/ Mein persönlicher Favorit ist das folgende Video, das sich weniger mit Details beschäftigt und den Blick mehr auf Java als Ganzes wirft und dabei einen größeren Zeitraum berücksichtigt. Gavin Bierman (Mitglied der Java Platform Group bei Oracle) zeigt, wie sehr sich Java in den letzten fünf Jahren verändert hat. Sehenswert, vor allem wenn man Java nicht ständig im Detail verfolgt. https://inside.java/2025/06/06/key-java-language-updates/ PS: Mein Java-Grundkurs erscheint in wenigen Tagen in der fünften Auflage, natürlich abgestimmt auf Java 25.