Beruflich Dokumente
Kultur Dokumente
08/23
RSS-Feedreader im
Direktvergleich S. 38 K8s-Quirks S. 52 Vcpkg S. 76
Akregator, Fluent Reader, Gfeeds, Liferea Wo der populäre Container- Einfach zu bedienender,
und QuiteRSS: fünf Nachrichtenzentralen Orchestrierer Kubernetes effizienter Paketmanager
für die grafische Benutzeroberfläche noch Probleme aufweist für C/C++-Bibliotheken
Serverdoks kontaktieren:
thomas-krenn.com/dok
+49 (0) 8551.9150-300
Login Editorial
Sozialversager
Jens-Christoph Brendel
Stellv. Chefredakteur
Manch einer mag vielleicht leicht pikiert nicht einmal. Computer verstehen nicht Nicht einmal die Sexindustrie glaubt üb-
den Blick senken, andere werden es nur nicht, was sie sagen, genauso wenig rigens, dass ein optisch perfekter, KI-ge-
amüsiert zur Kenntnis nehmen, wieder empfinden sie etwas dabei. nerierter Schauspieler die Kundschaft
andere glauben es einfach nicht. Und Manche Entwicklungen mögen mo- überzeugen könnte. Mark Spiegler, ein
doch ist es eine Tatsache: Viele techni- mentan den Anschein erwecken, als gäbe Agent für Pornodarsteller, den die
sche Innovationen mindestens der letz- es für immer intelligentere Computer Washington Post zitiert, meint, seine
ten Jahrzehnte hat die Pornoindustrie bald überhaupt keine Arbeiten mehr, die Schützlinge operierten mit Charisma,
mit vorangetrieben. Angefangen bei der sie nicht übernehmen könnten. Tatsäch- Können und Attraktivität. Und da könne
VHS-Kassette, die sich durchsetzte, weil lich aber gibt es eine Schranke, und die eben keine KI mithalten. „Ich glaube nicht,
die Konkurrenten Video 2000 und Beta- ist absolut. Ein Pflegeroboter mag helfen, dass man eine Persönlichkeit maschinell
max keine Schmuddelinhalte auf ihren einen Patienten umzulagern – Anteil an lernen kann. Man kann es ein bisschen
Medien wissen wollten, über Virtual seinem Schicksal nehmen, ihn mitfüh- nachahmen, aber es fehlt immer noch
Reality, Online-Bezahlsysteme oder lend trösten kann er nicht. Eine Jura-KI der menschliche Funke und die Sponta-
Social-Media-Marketing bis hin zur aktu- mag auf unzählige Gesetzestexte und neität.“ Vielleicht zeigt das Unvermögen
ellen, bilderzeugenden KI – überall zähl- Präzedenzfälle zugreifen – Empathie mit des kalten Rechners in heißen Szenen
te das Erotik-Business zu den Vorreitern. dem Opfer empfinden, Strenge und Gna- ganz gut, dass es Grenzen gibt, die Ma-
Der Grund dafür ist simpel: Es war und ist de gegenüber dem Täter austarieren, das schinen kaum überschreiten können.
ein Milliardengeschäft. kann sie nicht. Lernsoftware mag die nö-
Man mag darüber die Nase rümpfen, es tigen Wiederholungen mit ausgeklügel-
belächeln oder als gegeben hinnehmen – ten Algorithmen steuern – einen ver-
die Technik selber trifft jedenfalls keine ständnisvollen Lehrer ersetzt sie nicht.
Schuld. Sie verfügt weder über ethische ChatGPT mag reimen können – wirklich
Maßstäbe noch sittliche Werte. Dafür dichten kann es nicht.
bleiben allein Menschen verantwortlich. KI kann längst im Stil von Picasso und
Alle Fähigkeiten, die sich unter Menschen Braque malen – den Kubismus hätte sie
herausgebildet haben, um ein soziales nie aus dem Nichts erfinden können. Zu-
Miteinander zu ermöglichen, sind Rech- sammengefasst: Allerspätestens da, wo
nern wesensfremd: Empathie, Fürsorge, es um Menschlichkeit geht, wo soziale
Liebe, Gerechtigkeitssinn oder Selbstlo- Kompetenz gefragt ist oder auch wo et-
sigkeit. Computer plagen keine Sorgen, was Niedagewesenes zu erschaffen ist,
sie freuen sich nicht, sie langweilen sich muss jede Maschine passen.
08.2023 www.linux-magazin.de 3
08
###### #######
4 www.linux-magazin.de 08.2023
###### #####
Ginge es nach den Wünschen vieler EU- Eine böswillige Android-Spyware hat sich
Staaten, könnten die umstrittenen Pläne in zahlreichen Apps des Google Play Store
zur sogenannten Chatkontrolle noch deut- eingenistet und tarnt sich als harmloses SDK.
lich verschärft werden.
Bücher............................................60
Ein zum besseren Verständnis grafisch auf-
bereitetes Werk behandelt die Methoden
des maschinellen Lernens, ein zweites gibt
62
anhand der C++ Core Guidelines Tipps zum Grundlagen der KI: Welche
effektiven Programmieren. Spielarten gibt es, und wie
funktionieren überwachtes, nicht über-
wachtes und verstärkendes Lernen?
08.2023 www.linux-magazin.de 5
Aktuell News
News
Debian 12 „Bookworm“ ist fertig
Das Debian-Team hat nach einem Jahr, neun Monaten und
28 Tagen Entwicklungszeit mit Debian 12 alias „Bookworm“
seine jüngste stabile Version veröffentlicht. Das Release erhält
dank des Engagements des Debian-Sicherheitsteams und des
Debian-Long-Term-Support-Teams Unterstützung für die
nächsten fünf Jahre. Mit der Veröffentlichung sind 11 089 Pake-
te neu hinzugekommen; damit enthält Debian 12 insgesamt
64 419 Pakete. 6296 veraltete Pakete entfallen, 43 254 Pakete
wurden für das Release aktualisiert.
6 www.linux-magazin.de 08.2023
News Aktuell
© Owncloud
Löschens eines Dokuments reduziert.
OCIS 3.0 erlaubt nun die Volltextsuche in allen Dateien. Bei
der Analyse der Inhalte hilft das Tika-Toolkit der Apache Foun
dation. An die Dateien geheftete Stichwörter (Tags) helfen zum Owncloud Infinite Scale unterstützt benutzerdefinierte Rollen.
C-Compiler im Boot-Sektor
Gerade einmal 512 Byte umfasst der C-Compiler SectorC. Damit Dereferenzieren von Zeigern sowie Kommentare. Dem Compi-
passt er komplett in den Boot-Sektor eines x86-Systems. Er un- ler liegen drei Beispielprogramme bei, die seine Leistungsfähig-
terstützt zwar nicht den kompletten C-Befehlssatz, aber den- keit demonstrieren. Auf der Github-Seite des Projekts findet
noch erstaunlich viele Funktionen. Darunter fallen laut Be- sich neben dem Quellcode des Compilers auch die zugrunde
schreibung des Projekts neben globalen Variablen, Funktionen, liegende Grammatik. SectorC ist in Assembler geschrieben und
If- und While-Statements und zahlreiche Operatoren auch das lässt sich mit Nasm übersetzen. █
NOV
0709
2023
Aktuell News
Kurznachrichten
Firefox 114: Mozillas populärer Webbrowser lokalen Angreifer unter Umständen möglich auch auf bestehende Benutzerkonten aus
wird komfortabler. Neu: Wer die Schaltfläche war, das Master-Passwort zu rekonstruieren. sowie auf sämtliche Software, die ebenfalls
für die Lesezeichen aktiviert hat, kann über Zudem speichert die Software jetzt Triggers, auf der Libxcrypt-Library basiert. Die Ent-
das dahinter liegende Menü direkt nach globale URL-Overrides, Passwortgenerator- wickler nennen als Beispiele OpenLDAP und
Bookmarks suchen. Analog erlauben die profile und einige Einstellungen mehr in der PostgreSQL. Auf bestehenden Systemen
Chronik-, Bibliotheks- und Anwendungsme- sogenannten Enforced Configuration. Pas- sollte man daher vor einem Upgrade auf
nüs, schnell eine Seite in der Chronik aufzu- send dazu gibt es den neuen Dialog Enforce NixOS 23.05 die Passwort-Hashes erneuern
spüren. Firefox unterstützt nun die Authen Options in den Einstellungen für Erweiterte und dabei ein sicheres Verfahren verwenden.
tifizierung über USB-Geräte, die nach dem Tools, der die Speicherung bestimmter Opti- Lizenz: LGPL, MIT
FIDO2/Webauthn-Standard arbeiten. Des onen in der Enforced Configuration erleich- https://nixos.org
Weiteren sind die DNS-over-HTTPS-Einstel- tert. Lizenz: GPLv2
PostmarketOS 23.06: Die für Tablets und
lungen in die Gruppe Datenschutz und Sicher- https://keepass.info
Smartphones gedachte Distribution stammt
heit gerutscht. Dort lassen sich auch die Aus-
OpenSuse Leap 15.5: Die Community-Dis von Alpine Linux ab. Neu: Das aktuelle Re-
nahmen für DNS over HTTPS verwalten.
tribution basiert auf Suse Linux Enterprise. lease enthält zum ersten Mal die Desktop-
Lizenz: MPL 2
Neu: Bei der Neuinstallation aktiviert Leap Umgebung Gnome Mobile. Übersetzungen
https://mozilla.org/de/firefox/new/
automatisch das OpenH264-Repository mit werden über lang jetzt standardmäßig in
IceWM 3.4: Der schlanke Fenstermanager einem H.264-Codec zur Anzeige entspre- stalliert, als Standardgebietsschema dient
erfreut sich immer noch großer Beliebtheit. chend kodierter Videos. KDE Plasma steht nun en_US.UTF‑8 anstelle von C.UTF‑8.
Neu: Nun spricht er auch Georgisch. Darüber in Version 5.27 bereit. Hinzu gesellt sich die Laut Release Notes ist außerdem das USB-
hinaus haben die Entwickler vor allem an der Softwaresammlung KDE Gear 22.12.3, als Tethering jetzt voll funktionsfähig. Lizenz:
Behandlung von Tastaturkürzeln geschraubt. Unterbau dient Qt 5.15 LTS aus der offiziellen überwiegend freie Lizenzen
So erlaubt die aktuelle Version jetzt auch KDE Qt 5 Patch Collection. Lizenz: GPL und https://postmarketos.org
Bindings für „Shifted Keys“, etwa auf AZER- weitere
Eclipse 2023-06: Eclipse ist eine quelloffene
TY-Tastaturen. Darüber hinaus unterstützt https://www.opensuse.org
und freie Desktop-IDE für C/C++, Java, Type
IceWM nun alle UTF-8-Codepoints. Nach ei-
NixOS 23.05: Die Distribution kommt mit Script/JavaScript, PHP und weitere Spra-
nem Wechsel des Tastaturlayouts kann Ice-
dem alternativen Paketmanager Nix. Neu: chen. Neu: In dieser Version ist die aufgaben-
WM die Tastaturkürzel zudem neu einlesen.
Das aktuelle Release verschlüsselt Passwör- zentrierte Benutzeroberfläche Eclipse Mylyn
Lizenz: GPL
ter mithilfe der Libxcrypt-Bibliothek, die jetzt wieder dabei. Wie gewohnt gibt es Updates
https://ice‑wm.org
nur noch sichere Verfahren anbietet. Dazu für neue Versionen der unterstützten Pro-
Keepass 2.54: Die freie Passwortverwaltung zählen alle Passwort-Hashing-Methoden, die grammiersprachen. Ein Sicherheitsaudit
mit verschlüsselter Datenbank erhöht die Si- das zugehörige Libxcrypt-Projekt explizit als liefert die Basis für Fehlerbereinigungen.
cherheit. Neu: Mit dieser Version beseitigen strong markiert hat. Damit erhöht sich zwar Lizenz: Eclipse Public License
die Entwickler eine Lücke, über die es einem die Sicherheit, doch die Änderung wirkt sich https://www.eclipse.org
8 www.linux-magazin.de 08.2023
Gitlab setzt auf KI
Die DevSecOps-Plattform Gitlab arbeitet in Version 16 mit KI-gestützten Funktionen
wie Codevorschlägen, mit denen Anwender schneller und effizienter Programme
schreiben können sollen. Als weitere mit künstlicher Intelligenz unterfütterte Funkti-
onen nennt der Anbieter Sicherheitstests und ‑analysen, Observability und proaktive
Schwachstellenerkennung. Auch Vorschläge zu Prüfern (Suggested Reviewers), Code-
erklärungen (Explain This Code) und Schwachstellenerläuterungen (Explain This Vulne-
rability) gibt es jetzt KI-gestützt. Geplant seien zudem KI-Funktionen zur Codeumge-
staltung (Refactor This Code) und zur Schwachstellenbehebung (Resolve This Vulnera-
bility), lässt Gitlab wissen. Akademie
Die aktuellen und kommenden Updates für Gitlab spiegeln die Nachfrage der Bran-
Aha-Effekt
che nach integrierter KI wider und betonen, wie wichtig es für Unternehmen ist, siche-
re Software schneller bereitzustellen. Darauf lässt zumindest der siebte jährliche Glo-
bal DevSecOps Report von Gitlab mit dem Titel „Security Without Sacrifices“ schließen.
Die Umfrage zeigt, dass 65 Prozent der Entwickler künstliche Intelligenz und maschi-
nelles Lernen bei Tests einsetzen oder das in den nächsten drei Jahren planen.
Zu den neuen und verbesserten Sicherheitsfunktionen in Gitlab zählt der Anbieter
gesucht?
ein zentralisiertes Richtlinienmanagement, erweiterte Compliance-Funktionen (Be- Schulungen für Linux-Admins, die
richte, Kontrollen, Dashboards) sowie standardmäßige SLSA-Level-3-Bescheinigun- durchblicken wollen. Fachlich und didak-
gen. Noch im Sommer will Gitlab eine mandantenfähige Software-as-a-Service-Lö- tisch kompetente Dozenten, spannende
sung namens Gitlab Dedicated einführen. Sie soll in stark regulierten Branchen oder Schulungsthemen und eine lockere
solchen mit hohen Compliance-Anforderungen eine DevSecOps-Plattform mit dem Atmosphäre im Kurs – all das erwartet
Schwerpunkt auf Datenresidenz, Isolierung und private Netzwerke bieten. █ Sie bei uns an der Heinlein Akademie.
ab 04.09.
Proxmox VE Installation & Administration
ab 04.09.
Systemmonitoring mit Checkmk - Teil 1
ab 06.09.
Proxmox VE Advanced
© Gitlab
ab 11.09.
Linux Admin Grundlagen
Setzt zunehmend auf künstliche Intelligenz: Gitlab in der Community Edition.
ab 11.09.
MySQL / MariaDB für Fortgeschrittene
08.2023
Aktuell Zahlen & Trends
Zahlen & Trends
IBM plant Quantenrechenzentrum in Deutschland
IBM hat Pläne für ein Quantenrechenzentrum in Europa publik
gemacht. Unternehmen sowie Forschungs- und Regierungsein-
richtungen sollen damit Zugang zu modernstem Quantencom-
puting bekommen, teilt IBM mit. Die Einrichtung soll laut der
Ankündigung 2024 betriebsbereit sein und über mehrere IBM-
Quantencomputersysteme mit Quantenprozessoren von mehr
als 100 Qubits verfügen. Standort ist Ehningen (Deutschland),
wo IBM bereits seine Deutschland-Zentrale hat. Das Rechenzen-
trum sei so konzipiert, dass die Kunden mit den Anforderungen
der europäischen Datenschutzbestimmungen zurechtkommen,
einschließlich des Verarbeitens der Daten für Quantenverarbei-
© IBM
tung innerhalb der EU-Grenzen, betont die Ankündigung.
„Wir sind froh und stolz, die Entscheidung des IBM Quantum-
Teams zu unterstützen, ihr europäisches Quantenrechenzen Aufbau des europäischen Quantenrechenzentrums.
trum in Ehningen zu errichten“, kommentiert Raoul Klingner,
Forschungsleiter der Fraunhofer-Gesellschaft. „Die Wahl des
Standorts in Baden-Württemberg wird das Ökosystem, das Deutschland sei nach Poughkeepsie, New York, das zweite IBM-
Fraunhofer mit Kunden und Partnern aus Industrie und For- Quantenrechenzentrum und eröffne damit die zweite Quanten-
schung aufgebaut hat, weiter stärken.“ Die Einrichtung in Cloud-Region von IBM, heißt es weiter. █
10 www.linux-magazin.de 08.2023
Zahlen & Trends Aktuell
© Stack Overflow
nen Suspendierungen von Nutzern. Darüber hinaus sollen die
Moderatoren künftig keine Programme mehr verwenden dür-
fen, die beim Erkennen von KI-generierten Inhalten helfen.
Aus Sicht der Moderatoren führen diese beiden neuen Re-
geln in Kombination dazu, dass KI-Inhalte auf der Plattform Bei Stack Overflow wollen die Moderatoren streiken.
12 www.linux-magazin.de 08.2023
Zahlen & Trends Aktuell
Jahresbericht Telekommunikation 2022
Die Bundesnetzagentur verzeichnet in ihrem „Jahresbericht Te- 2022 sei in Deutschland ein Datenvolumen von insgesamt
lekommunikation 2022“ Investitionen von 13,1 Milliarden Euro 121 Milliarden GByte in Festnetzen übertragen worden, teilt die
im Telekommunikationsmarkt. Demnach investieren Unterneh- Agentur mit. Seit dem Jahr 2019 sei beim Datenvolumen ein
men überwiegend in neue Breitbandnetzinfrastrukturen, im Anstieg von rund 20 Milliarden GByte pro Jahr zu verzeichnen.
Festnetz in den Glasfaserausbau und im Mobilfunk in 5G-Netze. Der Bericht lässt sich unter https://www.bundesnetzagentur.de/
Zum Jahresende 2022 sei die Zahl aktiver Glasfaseranschlüsse SharedDocs/Mediathek/Berichte/2023/JB_TK_2022.pdf abrufen.
mit den Zugangsvarianten FttH und FttB auf 3,4 Millionen ge- (Sebastian Grüner, Tim Schürmann, uba) █
stiegen. Das übertreffe den Bestand Ende 2021 um rund
800 000 Anschlüsse. Die dennoch relativ geringe Verbreitung
führt die Bundesnetzagentur im Wesentlichen auf den hohen
Versorgungsgrad mit bestehenden leistungsfähigen Infrastruk-
turen (VDSL-Vectoring, HFC-Netze) zurück.
Das über Festnetze abgewickelte Gesprächsvolumen sei bis
zum Jahr 2019 rückläufig gewesen. Nach einem Anstieg im ers-
ten Pandemiejahr 2020 auf insgesamt rund 104 Milliarden Ge-
sprächsminuten folgte 2021 mit rund 93 Milliarden Gesprächs-
minuten erneut ein Rückgang. 2022 sanken die Gesprächsmi-
© Bundesnetzagentur
nuten weiter auf etwa 80 Milliarden.
Über Mobilfunknetze seien im Inland rund 159 Milliarden ab-
gehende Gesprächsminuten geführt worden, heißt es im Be-
richt. Das entspreche rund 126 Minuten monatlich je SIM-Karte.
Erstmals seien annähernd doppelt so viele Gesprächsminuten
über mobile Endgeräte wie über das Festnetz getätigt worden. Entwicklung der Breitbandanschlüsse in Deutschland.
GEMEINSCHAFT MACHT
STARK!
Baustelle Doku
teure neben dem Was auch gleichzeitig
die Frage: Für wen? Schon allein dieses
Kriterium unterteilt Technische Doku-
mentation in verschiedene Kategorien.
Außerdem kommt es noch auf die
Form an: Wie wird dokumentiert? Das
Ein wesentlicher Erfolgsfaktor für gute Dokumentation ist kann Text sein, Illustrationen, Grafiken,
Mindmaps und so weiter. Je nach Art
eine strukturierte und systematische Herangehensweise. der Dokumentation kann sie entweder
in den Quellcode eingebettet sein oder
Dieser Beitrag vermittelt Grundlagenwissen darüber, wer die Software begleiten. Wichtig ist, die
Informationen so aufzubereiten, dass
was und wie dokumentieren sollte und wie man dabei den sich nachvollziehen lässt, wie das Soft-
wareprogramm zu verwenden ist. Der
roten Faden nicht verliert. Anna Lehmann Zweck der einzelnen Komponenten soll-
te klar werden und auch ein Überblick
über die Möglichkeiten (und Grenzen)
Wen sollte man fragen, wenn man sich zusammenfasst, dass der Leser sie leicht des Programms gegeben werden. Je
einen Überblick über Softwaredokumen- aufnehmen kann. Zu diesen nützlichen nachdem, was die Software alles kann,
tation verschaffen will? Am besten viel- Informationen gehören jegliche für die gehört auch dazu, dass die Funktions-
leicht die Berufsgruppe, die sich ganz Zielgruppe relevanten Daten, die für die weise erklärt wird. Das betrifft unter Um-
dem Thema der Dokumentation ver- Entwicklung, Nutzung, Pflege und Unter- ständen auch Resultate oder Prozesse,
schrieben hat: die Technischen Redak- haltung sowie Aktualisierung nötig sind. an denen die Software beteiligt ist. Es gilt
teure. Einen Technischen Redakteur Und schon ist da ein für die Dokumen- zu erläutern, wie das Programm zu be-
zeichnet besonders aus, dass er nicht ir- tation außerordentlich relevantes Stich- dienen ist, welche technischen Voraus-
gendeinen Text verfasst, sondern einen, wort aufgetaucht: Zielgruppe. Sobald setzungen gegeben sein müssen und
der nützliche Informationen zum Pro- es etwas zu dokumentieren gibt, rücken welche Tätigkeiten gegebenenfalls sonst
dukt – in diesem Fall zur Software – so auch diejenigen in den Fokus, die mit auch noch auszuführen sind.
14 www.linux-magazin.de 08.2023
Einführung Titelthema
08.2023 www.linux-magazin.de 15
Titelthema Einführung
mit den Abteilungen abstimmen, die mit druckten oder PDF-Version möglich Entlang des Lebenszyklus
dem Kunden zu tun haben. Das ist einer- 2
wäre. Als Beispiel zeigt Abbildung die
seits das Marketing, das das Unterneh- Word-Hilfe von Microsoft. Mit einem Alles in allem kann man sich auch bei der
men oder die Produktmarke nach außen Klick auf das kleine Fragezeichen öffnet Softwaredokumentation an den Produkt-
optimal repräsentieren möchte, anderer- sich direkt die Online-Hilfe, die unter lebenszyklus halten. Von der Installation
seits aber auch der Vertrieb, der mit dem support.microsoft.com zu finden ist. Sie und Konfiguration über die Benutzung
Kunden unter Umständen spezifische enthält Screenshots, damit sich der Be- und Anpassungsmöglichkeiten bis hin
Abmachungen – auch bezüglich der nutzer schnell zurechtfindet, sowie zum Aktualisieren und Updaten und
Dokumentation – getroffen hat. Handlungsanweisungen oder Tätigkeits- letztlich zur Deinstallation gibt es fast im-
Externe Dokumentation sollte hilfreich beschreibungen (mit fett dargestellten mer etwas, was der Nutzer wissen muss.
sein, um zu verstehen, wie ein Programm Bezeichnungen aus der Software selbst) Die Installationsanleitung sollte be
zu verwenden und zu konfigurieren ist. und Tipps & Tricks. antworten, wie man das Programm auf
Manchmal ist sie aber auch eine Quelle Eine weitere Möglichkeit, wie Informa- einem Rechner einrichtet und welche
der Verwirrung und Frustration. Das gilt tionen zum Anwender gelangen können, Voraussetzungen erfüllt sein müssen.
vor allem dann, wenn sie nicht sinnvoll sind Leitfäden und Tutorials, die nicht Meist richtet sich diese Anleitung an er-
redaktionell aufbereitet, verständlich ge- alle Funktionen der Software abdecken, fahrene Administratoren, die mit klassi-
schrieben oder nachvollziehbar struktu- sondern nur spezifische Themen – die schem Softwarejargon gut klarkommen.
riert ist. Also ist gerade hier die Gilde der aber dafür sehr detailliert. Falls die Soft- Im Gegenzug dazu gehört in die De
Technischen Redakteure gefragt, das ware über Drittanbieter auf den Markt installationsanleitung, was getan werden
Wissen einerseits zu sammeln, anderer- kommt oder mit weiteren Programmen muss, um die Software sicher vom Sys-
seits auch zu analysieren und zu struktu- oder Daten interagieren soll, ist eine API- tem zu entfernen, und ob es etwas zu
rieren – und vor allem: es verständlich für Dokumentation für die Schnittstellen un- beachten gilt, damit beispielsweise er-
die jeweilige Zielgruppe wiederzugeben. abdingbar. Sie erklärt vor allem, wie man zeugte Daten erhalten bleiben.
Zur externen Softwaredokumentation die Schnittstelle nutzt und in welchen Auch die Konfigurationsanleitung
gehört zum Beispiel die klassische Be- Formaten auf welche Art sie die Daten wendet sich häufig noch an Administra-
nutzerdokumentation oder das Benut- überträgt. Hier kann teilweise die Daten- toren. Sie beschreibt, welche Einstellun-
zerhandbuch, als PDF oder gedruckt, so dokumentation schon hilfreich sein. gen man im Programm vornehmen kann
wie es früher üblich war und es manche Je nachdem, was der User mit der Soft- und sollte, damit die User die Software
Verträge immer noch erfordern. Die ware alles tun darf und kann, dürfen dann bestmöglich nutzen können. Dazu
Handbuchinhalte sollten sich nicht we- auch weitere Informationen nicht fehlen. kann auch gehören, wie sich einer Fehl-
sentlich von denen der Online-Hilfe oder So kann auch für den Administrator, der bedienung vorbeugen lässt, sodass keine
kontextsensitiven Hilfe unterscheiden. sich beim Kunden um die Einrichtung wichtigen Informationen verloren gehen.
Häufig differiert hier hauptsächlich die der Software kümmert, eine Testdoku- Auch häufig auf der Ebene für Admins
Art der Darstellung. Der digitale Raum mentation hilfreich sein, sofern die Soft- angesiedelt sind die Informationen für
bietet auch Möglichkeiten, die Inhalte ware Schnittstellen mitbringt und in Pro- Updates und Aktualisierungen, beson-
spezifischer zu filtern, als das in einer ge- zesse eingreifen könnte. ders bei komplexeren Programmen. Teil-
weise dürfen Anwender
auch Updates direkt aus-
führen. Dann muss die
Dokumentation klar und
verständlich beschreiben,
wie das Schritt für Schritt
funktioniert. Außerdem
stünde hier, falls es feste
Zyklen für Updates gibt.
Benutzerdokumentati-
on richtet sich, wie der
Name schon sagt, an die
User, die dann mit dem
Programm arbeiten sol-
len. Sie zeigt auf, welche
Möglichkeiten die Soft-
ware bietet und wie man
sie zu verwendet. Gerade
bei Software mit einer
grafischen Benutzerober-
2 Aus diesen Elementen besteht die Online-Hilfe von MS-Word. fläche (GUI) sollten
16 www.linux-magazin.de 08.2023
Einführung Titelthema
Screenshots den Anwendern eine Orien- zum rechtlichen Rahmen der Soft- Bei der internen Dokumentation war
tierungshilfe liefern. Ohne sie findet sich waredokumentation. Es gibt aber auch dagegen häufiger vom Entwickler/Pro-
der User schnell nicht mehr zurecht und Anforderungen aus Normen, die ver- grammierer die Rede. Viele Entwickler
ist frustriert. Achten Sie darauf, dass Her- suchen, die Informationen für die Be- erarbeiten die Softwaredokumentation
vorhebungen klar aufzeigen, worum es nutzung zu vereinheitlichen. Sie be- selbst. Wer programmiert hat, weiß ge-
geht, also etwa, welcher Button geklickt schreiben konkrete Rahmenbedingun- nauestens, wie die Software funktioniert.
werden muss. gen, auf die sich Experten aus dem Das kann aber auch dazu führen, dass
Besonders wichtig ist auch das Thema Fachgebiet geeinigt haben, damit der die Erklärung den technischen Horizont
der Fehlerbehebung: Mit welchen Feh- Standard – in diesem Fall für die Doku- der Anwender oder neu eingestiegenen
lern muss man rechnen, und wie behebt mentation – einheitlich und qualitativ Entwickler weit übersteigt. Beim Erstel-
man sie? Gegebenenfalls gehört dazu, hochwertig ist. len der externen Dokumentation durch
durch wen. Das ist etwa der Fall, wenn Es existieren verschiedene Herangehens- die Entwickler können leicht technische
der User das nicht selbst kann oder sogar weisen, um eine passende Benutzer Details vorkommen, die eher verwirren
der Admin passen muss, weil er be- dokumentation zu erstellen. Das bezieht als helfen. Um eine Software zu verwen-
stimmte Konfigurationen selbst doch sich auf aktuell gebräuchliche Methoden, den, muss der User die Feinheiten der in-
nicht vornehmen darf, die in der Hand an denen man sich als Dokumentieren- neren Funktionsweise meist nicht ken-
des Herstellers liegen. der orientieren kann. Wohl jeder Techni- nen, sondern nur wissen, wie Dinge zu-
Die Beschreibung der Anpassungs- sche Redakteur hat die Zahlenfolge sammenhängen und welche Reihenfolge
möglichkeiten möchte oft vor allem der 82079-1 schon einmal gehört oder gese- er im Fall der Fälle zu beachten hat.
Vertrieb gern in jede Benutzerinformati- hen. Dahinter verbirgt sich eine internati- Es kann aber auch sein, dass Fachan-
on integrieren, damit der Kunde mög- onal entwickelte Norm, die auf Deutsch wender Software dokumentieren. Da sie
lichst weitere Funktionen zukauft. Durch beim DIN herausgekommen ist. Daneben regelmäßig mit der Software arbeiten,
Addons können in diesem Fall mehr Auf- haben daran das europäische Normen- wissen sie in der Regel, was andere An-
gaben mit einem Programm erledigt gremium EN sowie internationale Orga- wender an Informationen benötigen.
werden, die dann allerdings häufig auch nisationen wie IEC und IEEE mitgewirkt. Allerdings sind solche Nutzer eher ein
extra zu vergüten sind. Hier liegt der Fokus auf der Informations- Glücksfall, und Softwareentwickler soll-
vermittlung durch die Dokumentation ten sich nicht darauf verlassen, dass Be-
für jegliche Produktarten. Diese Norm ist nutzerdokumentation auf diese Weise
Anforderungen
also für eine professionell erstellte Doku- entsteht. Es kommt jedoch durchaus vor,
Woher können Anforderungen an die mentation generell relevant. dass Anwender einzelne, spezifische Use
Doku kommen? Zunächst gilt: Die Anfor- Außerdem lässt sich für den Bereich Cases verbreiteter Software etwa in
derungen an Dokumentation von Soft- der Softwaredokumentation die Nor- Foren besprechen.
ware unterscheiden sich nicht wesentlich menreihe ISO/IEC/IEEE 2651x mit Bezug Im Idealfall dokumentiert also weder
von Anforderungen an andere Arten von auf Nutzerinformationen heranziehen. der Technische Redakteur noch der
Dokumentation. Grundsätzlich gilt es, Sie spricht in den einzelnen Normteilen Entwickler allein die Software. Eine gute
die Regeln der Technischen Dokumenta- die jeweiligen Kontaktgruppen der Be- Mischung und Arbeitsteilung ermöglicht
tion einzuhalten: nutzerinformation (vom Manager, Ein- dem Team maximale Effizienz bei best-
• Die Dokumentation soll die Fragen der käufer und Lieferanten, Tester und Gut- möglichem Effekt.
jeweiligen Zielgruppe beantworten. achter bis zum Designer und Entwickler)
Dazu gehört etwa die Frage der User, und die agile Vorgehensweise an.
Wie ist zu dokumentieren?
wie das Programm genutzt wird, oder
die der Entwickler, wofür welcher Teil Es gibt keine allgemeingültigen Best
Wer schreibt?
im Code steht. Practices für Softwaredokumentation, da
• Die Doku soll verständlich sein, dabei Wir haben schon viel vom Technischen diese davon abhängt, was genau für wen
aber trotzdem so kurz wie möglich. Redakteur gesprochen. Ausgebildete dokumentiert werden muss. Allerdings
• Softwaredokumentation muss sich Mitglieder einer Technischen Redaktion gibt es einige allgemeine Tipps, die bei
nach den Bedürfnissen und Aufgaben sind darauf spezialisiert, dem Anwender der Dokumentation eines Programms
der Endanwender richten. der Software eine verständliche Anlei- befolgt werden sollten:
• Die Dokumentation erfolgt meist zu- tung zu geben, die sich einfach lesen • Einfach und klar: Leicht verständlich
sammen mit der Software. lässt. In der Regel machen sich techni- formulieren und je nach Zielgruppe
• Auch die Doku muss möglichen recht- sche Autoren mit der Anwendung ver- frei von Fachausdrücken, sofern sie
lichen Anforderungen genügen. Das traut und testen die verschiedenen Funk- nicht geläufig sind.
gilt insbesondere, wenn die Software tionen. So nehmen sie automatisch den • Prägnant: Nur für die Zielgruppe rele-
Teil eines Gesamtprodukts ist. Dann Blickpunkt des unerfahrenen Benutzers vante Informationen dokumentieren
gelten hier die gleichen Regeln wie für ein und sehen, welche Art von Informati- und für das User Manual zum Beispiel
die Hardware. Mögliche vertragliche on für diejenigen relevant ist, die eine alles weglassen, was nicht direkt mit
Vereinbarungen gehören ebenfalls Dokumentation lesen. der Nutzung der Software zu tun hat.
08.2023 www.linux-magazin.de 17
Titelthema Einführung
18 www.linux-magazin.de 08.2023
LINUX-
MAGAZIN
IHRE DIGITALE AUSGABE
ÜBERALL DABEI!
shop.linuxmagazin.de
© Wuttichai Kaewklang / 123RF.com
Gute Dokumentation effizient schreiben: Tipps von den Doku-Profis
20 www.linux-magazin.de 08.2023
Best Practices Titelthema
gäbe Regeln für diesen oder jenen Satz- on (mit zum Beispiel allen API-Befehlen)
bau oder für diese spezielle Textsorte. bis hin zu monothematischen How-tos
Oft ist auch schwer zu vermitteln, dass oder Best Practices reichen. Meist gibt es
es einen großen Unterschied macht, ob spezielle Tools für jede Gattung. Das
man einen Text fürs Internet, Print, die Swagger-Toolset beispielsweise hilft
Online-Hilfe oder für das PDF der High- bei den einzigen Handbüchern, die sich
Value-Kunden schreibt. halbwegs automatisiert schreiben lassen:
Das Portal studieren.de sieht – API- und Referenz-Dokumentationen.
ChatGPT zum Trotz – für Dokumentati-
onsexperten eine glorreiche Zukunft:
Klare Prioritäten
„Technischen Redakteur*innen werden
gute Zukunftsaussichten vorausgesagt: Die Prioritäten, was zu dokumentieren
Zum einen liegt das daran, dass sie viel- ist, sollte stets das Produktmanagement
fältig einsetzbar sind, zum anderen, dass vergeben: Dort laufen die Fäden zusam-
immer mehr Produkte auf den Markt ge- men, was den Bedarf der Kunden und
worfen werden, die einer Erklärung be- 1 Meike Chabowski ist Documentation die heißesten neuen Features angeht.
dürfen. Einsatzmöglichkeiten finden sie Strategist bei Suse. Auf gar keinen Fall sollten Developer
bei fast allen Industrieunternehmen – dokumentieren oder die Scrum Master
vom Konsumgüterbereich bis hin zum entscheiden, was dokumentiert werden
Maschinen- oder Fahrzeugbau, in der le Menschen Geräte und Software als sollte. Sie haben fast immer nur die In-
Telekommunikation, der Computerbran- immer komplizierter wahr, allen Fort- nenansicht, nicht jedoch den Überblick.
che und im Bereich der Optik.“ schritten in Sachen UX/UI-Design zum Das Was ist ohnehin meist ein Kompro-
„Kommunikation ist das A und O. Auch Trotz. Firmen erkennen den Wert guter miss aus verschiedensten Fragen: Was
auf und zusammen mit den höchsten Dokumentation, sowohl für die Produkte ist neu? Was muss man erklären? Was
Managementebenen muss der Doku- als auch für die Prozesse innerhalb der brauchen die Kunden (dem Vertrieb, den
mentationsexperte in der Lage sein, Be- Firma – Stichwort: Knowledge Manage- Kundenberatern und den Consultants
wusstsein (Awareness) für die Wichtigkeit ment. Gerade bei Letzterem gewinnt zufolge)? Wofür stehen Ressourcen
des Themas zu schaffen. Gerade die das Thema Nachhaltigkeit mehr und bereit, was hat Priorität?
Chefetagen müssen verstehen, dass Do- mehr an Bedeutung. Dass dabei zahlreiche Kollegen und
kumentation ein wesentlicher Bestand- Eine zweite Jugend erfuhr das Wis- Manager ein Wörtchen mitreden wollen
teil der Softwareprodukte und ‑lösungen sens- und Know-how-Management in und dürfen, macht die Sache nicht ein
ist, ohne den der Anwender kaum Erfolg Unternehmen spätestens 2021, als facher. Ein Dokumentationsexperte
haben wird.“ Marktführer Atlassian, Hersteller der in muss heute zwingend auch Fähigkeiten
Das sei allerdings immer noch nicht den meisten IT-Firmen eingesetzten Sys- des Projekt- und Zeitmanagements,
überall angekommen, erklärt Meike Cha- teme Confluence, Jira und Trello, seine agiler Methoden und Verständnis für
bowski, Documentation Strategist beim Preise massiv erhöhte und begann, Kun- Unternehmensprozesse und ‑ressourcen
1
Linux-Vendor Suse . „Wer Dokumen den in die Cloud zu zwingen. Da zeigte mitbringen – und darüber hinaus eine
tation nur als Cost Center sieht, hat ein sich, wie teuer es werden kann, sich nur saubere Triage beherrschen.
Problem. Dokumentation ist ein grundle- auf einen Monopolisten zu verlassen. Die schönste Doku hilft niemandem,
gender Service, den der Kunde mit dem Hersteller von Open-Source-Alternativen wenn sie nicht gelesen oder nicht benö-
Produkt mitbezahlt“, stellt sie klar. Ohne zu Atlassian-Produkten haben derzeit tigt wird. Sie wirft auch keinen messba-
Zusammenarbeit mit anderen Teams Konjunktur. Auch das Linux-Magazin ren ROI (Return on Investment) ab und
geht da gar nichts. Experten aus allen be- zeigte , wie man es schafft, trotz des kostet nur Geld – so ein oft gehörter Vor-
teiligten Teams müssen zusammenarbei- Trubels im Alltagsbetrieb eben jenen All- wurf. Aber ein guter Dokumentations-
ten, auch das Feedback von externen tag zu dokumentieren und die Prozesse prozess steht im engen Austausch mit
Fachleuten ist wichtig. Dazu meint Cha- und Informationen aufzuzeichnen, die der Qualitätssicherung. Weil die Doku-
bowski: „Nicht jeder kann schreiben, aber die Mitarbeiter häufig brauchen. Diesel- mentation eines neuen Produkts ja mit
jeder kann zur Dokumentation beitragen ben Methoden greifen auch bei der Pro- dem Produkt fertig sein muss, aber meist
– sei es durch Feedback, Anregungen, duktdokumentation. länger dauert, testen die Doku-Schreiber
Fehler finden, Text korrigieren und vieles Die vielen Anleitungen im Internet meist lange, bevor die QA-Kollegen an-
andere mehr.“ sind sich ebenfalls einig: Gute Dokumen- fangen. Auch gemeinsame Sprints sind
tation fängt mit einem sauberen Prozess denkbar – und manchmal dringendst
an, hört damit aber noch lange nicht auf. nötig –, bei denen Development, QA und
Was dokumentieren?
Meist braucht es drei bis fünf verschiede- Doku sich zum Erstellen eines Hand-
Gute Dokumentation wird immer wichti- ne Gattungen, die von Quickstart-Guides buchs zwei Wochen in Klausur begeben.
ger: Auch in Unternehmen und gerade („Getting Started“) über Installations-, 2
Das sieht auch Martin Mattel so:
im Kontakt mit Endgeräten nehmen vie- Admin-, User und Referenzdokumentati- „Dokumentation ist nicht das Schreiben
08.2023 www.linux-magazin.de 21
Titelthema Best Practices
22 www.linux-magazin.de 08.2023
Best Practices Titelthema
mentation zu achten gilt: „Es braucht ein Ideal ist es, wenn schon die Entwickler
klar umrissenes und definiertes Szenario, eine eigene, interne Vorabdoku erstellen,
eine klare Struktur mit Zielen, Vorausset- auf der man aufbauen kann. Das muss
zungen und Umsetzung. Das meine ich aber schon in der Aufwandsplanung ein-
nicht nur theoretisch – das Dokumentier- gepreist werden. Eine Checkliste, auf der
te als Schreiber auch in der Praxis nach- „Dokumentieren und Kooperation mit
vollzogen und verstanden zu haben, hilft dem Doku-Team“ als verpflichtende Auf-
ungemein, die Qualität der Dokumenta- gabe (Mandatory Task) eingestuft ist,
tion zu steigern.“ Gefragt, was denn die hilft da sehr. Ein Produkt ist erst fertig,
wichtigste Erfahrung sei, die das Suse- wenn es Dokumentation gibt.
Dokumentationsteam in drei Jahrzehn- Zusammen mit den Entwicklern neh-
ten gemacht hat, erklärt Sundermeyer: men moderne Dokumentationsteams Teil
„’Hands-on’-Experience ist durch nichts am agilen Prozess der Softwareentwick-
zu ersetzen, und Technical Writing ist in- lung, machen Milestones mit und neh-
terdisziplinäre Teamarbeit.“ men an Sprints teil. Separate Doc Sprints
Dokumentation solle nach Möglichkeit oder Doc Days – Tage, an denen nur an
stets parallel zum Schreiben in der Praxis der Dokumentation gearbeitet wird –
getestet werden, betont Sundermeyer, 4 Frank Sundermeyer ist Teamleiter im helfen sehr, auch beim Erzeugen der
weil sich so auch Fallstricke und Irrwege Dokumentationsteam bei Suse. Awareness. Kein Wunder, dass es ein gu-
dokumentieren lassen, die ansonsten tes Zeichen für ein funktionierendes Do-
eventuell in Vergessenheit geraten. Auch kumentationsteam ist, wenn es sich naht-
die Entwicklung profitiert von dieser Vor- zielle Zielgruppe geschrieben werden“. los in die Tools und Sprachen integrieren
gehensweise, da Technical Writer so nicht Alle erforderlichen Grundkenntnisse müs- kann, die die Entwickler nutzen. Derlei
selten Fehler finden und rückmelden. sen vorab in einem Bereich „Voraussetzun- Kenntnisse beschleunigen den Doku-
Hier kommt ebenfalls potenzieller Re- gen“ abgeklärt sein. „Damit ergibt sich die mentationsprozess enorm und reduzie-
turn on Investment ins Spiel: „Wir ma- Flughöhe eigentlich automatisch.“ ren den Overhead in anderen Teams.
chen zum Beispiel die Suse Best Practi- Eine vorherige Analyse der Zielgruppe Aber auch die Techniker mit Anwen-
ces teilweise auch in Zusammenarbeit und der Leserschaft hält als Technical derkontakt müssen Zeit einplanen – und
mit unseren Consultants und beschrei- Writer auch seine Kollegin Julia Falten das ist oft teuer. Wenn Consultants, Sales
ben darin besondere und verbreitete bacher für enorm wichtig: „Vor dem Engineers, Support und Presales Feed-
Kundenszenarien. Bei der Umsetzung Schreiben muss eine Zielgruppenanalyse back geben sollen, müssen sie Stunden
beim Kunden muss das ja entsprechend durchgeführt werden, die die Vorkennt- dafür reservieren – Stunden, in denen sie
dokumentiert sein, sodass die Doku aus nisse und Bedürfnisse der Leser festhält, erst einmal keinen Umsatz für die Firma
der Alltagsarbeit schon fast von selbst damit diese stets auch beim Schreiben machen. Aber genau diese wertvolle
herausfällt. Das Ganze kann dann an- beachtet werden können. Erst daraus er- Zeit, in der das Feedback aus der Zusam-
schließend ein Technical Writer bearbei- gibt sich dann zum Beispiel auch das menarbeit vor Ort mit dem Kunden und
ten und publikationsfähig machen.“ Ausgabeformat.“ Ein Techniker, der in der bei der Implementierung von Lösungen
Das sagt auch Martin Mattel: „Doku- Werkstatt vor einer Maschine steht, be- in die Doku fließt, ist bares Geld wert.
mentation sollte immer eingebunden nötigt zwangsläufig ein anderes Format Derlei können kein Softwareentwickler
werden, ganz am Anfang und ohne Ein- als der, der vor dem Büro-PC sitzt. Im und kein Technischer Redakteur liefern,
schränkungen.“ Und Meike Chabowski Internet gelten dann noch einmal andere weil ihnen die Real-Life-Erfahrung mit
bestärkt, dass es immer darum gehe, Be- Regeln: Viele Teams behandeln für Such- den Produkten oder Lösungen fehlen.
wusstsein zu schaffen bei allen Verant- maschinen optimierte Texte (SEO) als Gute Doc-Teams machen es den Zu
wortlichen, Entwicklern, Entwicklungs- eigene Ausgabekategorie. lieferern so einfach wie möglich – egal,
teams und Managern: „Wir dokumentie- ob diese in Sales oder Development
ren nicht für euch oder uns, sondern für arbeiten, egal, welche Expertise in Sa-
Ohne Doku kein Produkt
unsere Anwender. Ohne Dokumentation chen Dokumentation vorliegt. Ein gutes
können die meisten Produkte nicht ge- Meike Chabowski mahnt: „Dokumentie- Dokumentationsteam sollte nach außen
nutzt werden. Dokumentation ist ein ren ist nicht nur ’einfach was schreiben’. werkzeug- und formatagnostisch sein.
grundlegender Service für den Kunden.“ Softwaredokumentation besteht zu- Jeder Input ist willkommen, egal in wel-
nächst überwiegend aus Recherche und cher Art von Datei.
Planung. Das Schreiben an sich ist der
Wie viele Details?
vom Aufwand her geringste Teil.“ Zwei
Tools, Tools, Tools!
Auch der Tiefgang spielt eine wichtige Wochen Recherche, Testen und Kommu-
Rolle. Frank Sundermeyer definiert Doku- nizieren für einen hilfreichen Absatz, der Thomas Schraitle, ebenfalls seit vielen
mentationen normalerweise als „Schritt- ein großes Problem vieler Kunden löst, Jahren im Dokumentationsteam von
für-Schritt-Anleitungen, die für eine spe- kann da schon einmal vorkommen. Suse tätig, legt den Fokus noch mehr auf
08.2023 www.linux-magazin.de 23
Titelthema Best Practices
24 www.linux-magazin.de 08.2023
Best Practices Titelthema
Verständliche Sprache 6 Bei Suse kommt die Docbook Authoring and Publishing Suite DAPS zum Einsatz.
Und nach all der Planung, Kommunikati-
on und Bewusstseinserweiterung gibt es Gute Texte zu schreiben, ist eine Wissen- Writer schreibt keine Prosa, sondern eine
dann ja noch die sprachliche Ebene, die schaft für sich. Chabowski rät, den Fokus Anleitung. Einfache Sprache, kurze Sätze,
sich als nicht minder komplex erweist. auf Verständlichkeit zu legen. „Ein Tech Wiederholungen von (Fach-)Begriffen,
ONLINE
MAGAZIN
NEWSLETTER FÜR IT-PROFIS
Sie sind IT-Profi für Linux und Open Source? Bleiben Sie informiert mit
dem werktäglichen Newsletter für IT-Profis vom Linux-Magazin!
Newsletter
n Tagesaktuelle IT-News
n Security-Infos des
DFN-CERT
n Online-Stellenmarkt
26 www.linux-magazin.de 08.2023
ANZEIGE
Gaming-PCs
von PCGH
Konfigurierbare
PCs von Dubaro
Vorschläge zur
Konfiguration vom
PCGH-Ratgeber-Team
Für PC-Schrauber:
Bestellung aller Hardware-
Komponenten auch als
Bausatz möglich
POWERED BY
Mit Überblick
zwischen einem System im Inventar und
der IP-Adresse ließen sich so nicht dar
stellen. Wer in einer Firma arbeitet, in
der noch die klassische Excel-Tabelle
mit sämtlichen vergebenen IPs existiert,
kennt die Mühsal, die diese Herange
Netbox hat sich als Werkzeug mit Zwitterfunktion für DCIM hensweise verursacht.
Netbox setzte dem Treiben vor etli
und IPAM längst etabliert. Wer jedes verbaute Teil in seinem chen Jahren ein Ende: Erstmals machte
es eine Kombination aus DCIM und IPAM
Rechenzentrum dokumentieren will, findet in Netbox dafür verfügbar, die unter einer freien Lizenz
stand und nicht fest mit einem der gro
die perfekte Lösung. Martin Loschwitz ßen Asset-Manager von HP und Konsor
ten verbunden war. Stattdessen wurde
Netbox von Anfang an von Admins für
Die Dokumentation des eigenen Netz er gegebenenfalls eine serielle Konsole Admins konzipiert. Unerreicht war sei
werks gehört üblicherweise nicht zu den anschließen muss. nerzeit beispielsweise die Detailtiefe, mit
Lieblingsaufgaben derer, die es bauen. Netbox1 gehört zu den Werkzeugen, der sich der Inhalt von Racks erfassen
Hilft aber nix: Wird der Administrator die Netzwerkern die Dokumentations ließ. Früh erkannten die Netbox-Entwi
morgens um drei aus dem Bett geklin arbeit zumindest ein bisschen schmack ckler, dass im modernen Rechenzentrum
gelt und sieht sich einem Problem im hafter machen. Das Werkzeug entstand eben nicht mehr nur IP-Adressen und
Netz gegenüber, muss er wissen, wer mit einst aus der Unzufriedenheit heraus, Netzwerke existieren: Darüber hinaus gilt
wem Daten austauscht, welcher Server dass für Datacenter Inventory Manage es auch, Faktoren wie BGP-Verbindungen
an welcher Stelle verbaut ist, wie er an ment (DCIM) und IP Address Manage oder die Adressen virtueller Instanzen
dessen BMC-Schnittstelle kommt und wo ment (IPAM) zwar diverse Werkzeuge sinnvoll zu verwalten.
28 www.linux-magazin.de 08.2023
Netbox Titelthema
© Netbox
Schnittstelle, über die das Werkzeug sich
verhältnismäßig leicht um weitere Funk
tionen erweitern lässt. Wie in der Open-
Source-Welt üblich lieferte die Commu 1 Netbox gilt im Kontext von DCIM und IPAM als Standardlösung, lässt sich mit den
nity prompt: Etliche freie Erweiterungen passenden Plugins aber um viele Funktionen erweitern.
stehen zur Verfügung, mit denen das
lokale Netz sich noch besser dokumen
tieren lässt. ändert. Das liegt vor allem daran, dass packen danach als dieser den herunter
Wer beispielsweise keine Lust hat, die Netbox-Entwickler vor ein paar Jah geladenen Tarball in /opt/netbox/. Al
Netzwerkpläne zu zeichnen, der kann ren offensichtlich so gute Designarbeit ternativ dazu schlägt die Dokumentation
diese Aufgabe an ein Netbox-Plugin ab geleistet haben, dass das Resultat bis vor, ihn nach /opt zu extrahieren und da
treten. Sofern die Daten in Netbox stim heute trägt. Noch immer benötigt das von einen symbolischen Link auf /opt/
men und die Verkabelung ordentlich er Werkzeug weitgehend dieselben Kom netbox/ anzulegen.
ledigt und erfasst wurde, zaubert das Vi ponenten wie zu Beginn seiner Entwick Dann geht es an die Netbox-Konfigu
sualisierungs-Plugin für Netbox in weni lung: Eine PostgreSQL-Datenbank, Redis, ration. Mittels der Kommandos aus den
gen Sekunden einen kompletten Netz Gunicorn als WSGI-Umgebung sowie Zeilen 2 und 3 von Listing 1 übernehmen
plan. Der lässt sich dank mannigfaltiger Apache oder Nginx, um Netbox an den Sie die Beispielkonfiguration, in der Sie
Einstellungsoptionen beim Ausgabefor Client auszuliefern. anschließend die Parameter ALLOWED_
mat auch an einen Plotter senden, der Um Netbox an den Start zu bringen, HOSTS, DATABASE, REDIS sowie SECRET_
dann eine Netzwerktapete für die Büro liefern die Entwickler zudem unverän KEY anpassen. Ein Schlüssel für den letzt
wand druckt. dert ein Setup-Werkzeug aus, das einen genannten Eintrag lässt sich mittels des
Zugegeben: Im Netz kursieren etliche Teil der Installation übernimmt. Im Fol Aufrufs python3 ../generate_secret_
Netbox-Erweiterungen, nicht alle leben genden gehen wir davon aus, dass auf key.py generieren. Schließlich steht der
auf Github. Die Entwickler von Netbox dem Zielsystem mit Netbox eine Redis- Aufruf des Werkzeugs an, das einen an
haben eigens für diesen Zweck eine Liste Instanz und PostgreSQL laufen; die Be fänglichen Benutzer in Netbox anlegt
mit von ihnen für gut befundenen Plug nutzerdaten beider Datenbanken müs (Listing 1, Zeilen 4 bis 6). Danach gilt es
ins erstellt. Der folgende Artikel listet ei sen bekannt sein. Zudem muss es einen noch, per Cronjob die Aufräumarbeiten
nige der besten Addons auf und zeigt, Systembenutzer netbox geben, mit des von Netbox zu aktivieren (Zeile 7).
wie sie die Dokumentation des eigenen sen Rechten der HTTP-Dienst läuft und Anschließend kopieren Sie die Guni
Netzwerks verbessern und manchmal so dem die zu Netbox gehörenden Dateien corn-Beispielkonfigurationsdatei con‑
gar revolutionieren. Zuvor geht es aber im System gehören. In /opt/netbox/, trib/gunicorn.py im Netbox-Ordner
kurz um das Setup von Netbox selbst. dem Home-Verzeichnis dieses Nutzers, nach /opt/netbox/. Über die Komman
landen auch die Dateien der Software. dos aus den Zeilen 9 und 10 bekommt
Sie laden die jeweils aktuellste Netbox- Systemd Units, über die es Netbox steu
Aller Anfang
Version nach /opt/netbox/ herunter, ert. Dann aktivieren Sie den Dienst (Zei
Hinsichtlich des Ablaufs hat sich eine ändern die Berechtigungen der Dateien le 11 und 12). Dazu muss freilich Guni
Netbox-Installation seit Jahren kaum ver auf den Systembenutzer netbox und ent corn bereits installiert sein; das Paket
08.2023 www.linux-magazin.de 29
Titelthema Netbox
2 Mittels des QR-Code-Plugins lassen sich Labels produzieren, die nach einem Scan per Hardware beschriften
Smartphone auf die jeweilige Geräteseite in Netbox führen.
Während es früher üblich war, lediglich
Geräte im Rechenzentrum zu beschrif
findet sich in den Repositories aller Apache-Beispielkonfiguration aus Net ten, kennzeichnet man mittlerweile auch
aktuellen Enterprise-Distributionen. box. Darin verändern Sie dann die Pfade Kabel. Ein logischer Ansatz, da sich ein
Im Anschluss erfolgt die Installation ei zu den SSL-Dateien, bevor Sie Netbox Kabel, das man anhand eines entspre
nes Webservers; im Beispiel kommt dafür endgültig in Betrieb nehmen (Zeile 16ff ). chenden Etiketts an Ursprung und Ziel
Apache zum Zug. Sie sollten an dieser Unter dem Host-Namen des Systems, eindeutig identifizieren kann, relativ
Stelle die Kombination aus SSL-Schlüssel auf dem Netbox läuft, sollte sich nun der leicht austauschen lässt. Dazu genügt es,
und SSL-Zertifikat sowie ein eventuell Port 443 von Netbox erreichen lassen. die jeweiligen Stecker auf beiden Seiten
benötigtes Intermediate-Zertifikat zur Die erste Anmeldung erfolgt mittels der zu trennen, und schon lässt sich das Ka
Hand haben, um Netbox von Anfang an zuvor auf der Shell festgelegten Benut bel aus dem Rack fischen. Hat man sich
adäquat abzusichern. Das Kommando zerdaten des Netbox-Superusers. Viel zu beim Bau des Racks entsprechend Mühe
aus Zeile 14 übernimmt im Anschluss die sehen gibt es nach dem ersten Login al gegeben, gerät so auch ein eventuell
vorhandenes Kabelmanagement nicht
aus den Fugen.
Listing 1: Netbox-Konfiguration Die verfügbaren Tagging-Lösungen
01
### Netbox konfigurieren
der Hersteller sind allerdings nicht son
derlich digital. Sie können zwar ein Tag
02
$ cd /opt/netbox/netbox/netbox/
mit einem Namen produzieren, oft ge
03
$ sudo cp configuration_example.py configuration.py nug war es das aber auch schon. Für den
04
$ source /opt/netbox/venv/bin/activate Administrator vor Ort ist das nur bedingt
05
$ cd /opt/netbox/netbox hilfreich. Jeder, der schon einmal in ei
06
$ python3 manage.py createsuperuser nem Rechenzentrum gearbeitet hat,
kennt das Problem wahrscheinlich: Rack-
07 $
sudo ln ‑s /opt/netbox/contrib/netbox‑housekeeping.sh /etc/cron.
Bezeichnungen fallen noch intuitiv aus,
daily/netbox‑housekeeping
bei einem sinnvollen Namensschema
08
### Systemd‑Dienst
möglicherweise auch die Server-Namen.
09
$ sudo cp ‑v /opt/netbox/contrib/*.service /etc/systemd/system/ Informationen zu einem beliebigen Ka
10
$ sudo systemctl daemon‑reload bel im Rack lassen sich ohne Hilfe eines
11
$ sudo systemctl start netbox netbox‑rq Computers allerdings nicht herausfin
den. Wer vor einer Stromverteilereinheit
12
$ sudo systemctl enable netbox netbox‑rq
(Power Distribution Unit, PDU) steht und
13
### Apache‑Konfiguration
sich darauf einloggen möchte, kann da
14 $
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/ gegen mit dem Host-Namen nur wenig
sites‑available/netbox.conf anfangen, wenn er nicht zufällig die IP-
15
### Netbox in Betrieb nehmen Adresse des Management-Interfaces des
16
$ sudo a2enmod ssl proxy proxy_http headers rewrite Geräts im Kopf hat.
17
$ sudo a2ensite netbox Mit dem entsprechenden Plugin bietet
Netbox hier erweiterte Möglichkeiten:
18
$ sudo systemctl restart apache2
Beschriftungen lassen sich bis hinunter
30 www.linux-magazin.de 08.2023
Netbox Titelthema
© Netbox Community
gar kein Hexenwerk: Es generiert aus die
ser URL einen QR-Code, den es mitsamt
grundlegenden Details zum Gerät aus
gibt. Den größten Teil der zu druckenden
Felder bestimmen Sie, sodass das Label
neben dem QR-Code sämtliche Details 3 DNS-Einträge lassen sich mittels des DNS-Plugins verwalten, und zwar so, dass die
enthält, die Sie sich wünschen. Daten gleich auch beispielsweise in Ansible zum Einsatz kommen können.
Noch praktischer: Ist das Plugin aktiv,
blendet Netbox das Label samt QR-Code
auf jeder Geräteseite ein und aktiviert zu erneut, wenn es seine virtuelle Python- Umstand, dass in vielen Firmen die Ver
sätzlich einen Print-Button. Wie es wei Umgebung im Rahmen eines Updates antwortung für die Wartung und die für
tergeht, hängt von der lokalen Hardware frisch erstellt. den Betrieb der physischen Infrastruktur
ab, die für das Tagging zum Einsatz bei unterschiedlichen Teams liegen.
kommt. Realisieren Sie Ihr Tagging per Auch dieses Problem lässt sich mit
Alles klar im DNS
Label-Printer, können Sie die Labels aus Netbox lösen, genauer gesagt mit des
Netbox gleich ausdrucken und die Gerä Ein weiteres Plugin beseitigt – wie Net 3
sen DNS-Plugin . Es verwaltet zu
te und Kabel beschriften. So sind Sie für box selbst – eine Baustelle, die sich in vie nächst Domänen und die DNS-Einträge
den nächsten Besuch im RZ perfekt vor len Firmen findet: die korrekte Dokumen für IP-Netzwerke inklusive A- und PTR-
bereitet. Stehen Sie vor der jeweiligen tation und Umsetzung von DNS-Einträ Einträgen. Diese löscht es zudem auto
Hardware, genügt es, den QR-Code mit gen. In vielen, wenn nicht sogar den matisch oder legt die entsprechenden
dem Smartphone zu scannen – flugs öff meisten Unternehmen sind die Datensät Einträge an, falls sich an den Netbox-Da
net sich die passende Seite in Netbox. ze für Hardwareinfos und DNS strikt von ten etwas ändert. Quasi im Vorüberge
Die Installation des Plugins ist denkbar einander getrennt. Ein Admin schraubt hen wird Netbox damit zur Single Source
einfach. Haben Sie Netbox wie beschrie also einen Server ins Rack, legt ihn in Net of Truth in Sachen DNS, was Arbeit spart
ben ausgerollt, lassen sich Erweiterun box an und erstellt danach im DNS-Server und die Effizienz erhöht. Kommt das
gen ganz einfach mittels Pip in der Net den für die Maschine benötigten Eintrag. Plugin zum Einsatz, muss die RZ-Truppe
box-eigenen virtuellen Python-Umge Das ist doppelt gemoppelt und der Ad nach dem Einbau eines Servers künftig
bung installieren. Die beiden Befehle ministrator muss künftig die Daten zum kein Ticket mehr an Ops schreiben, um
source /opt/netbox/venv/bin/activa‑ jeweiligen Gerät an zwei Stellen pflegen. DNS-Einträge für das neue Gerät zu pro
te sowie pip install netbox‑qrcode Verändert sich der Server durch Wegfall duzieren. Netbox erledigt das stattdes
sowie der Eintrag PLUGINS = ['netbox_ oder Austausch, gilt es, anschließend sen ganz von allein.
qrcode'] in opt/netbox/netbox/net‑ möglicherweise die A- wie auch die PTR- Die Installation des Plugins verläuft
box/configuration.py schließen die Einträge für das System zu bearbeiten. analog zu jener für das QR-Code-Plugin
Konfiguration ab. Die Änderungen grei Muss man logisch zueinander gehö (Listing 2, erste zwei Zeilen). Der Eintrag
fen nach einem Neustart von Netbox. Die rende Daten unabhängig voneinander aus Listing 3 aktiviert die Erweiterung
Geräte-QR-Codes tauchen nun von allei pflegen, kommt es bekanntlich regelmä und zeigt sogar die korrekte Syntax für
ne auf, das Beschriften kann losgehen. ßig zu Unstimmigkeiten. Entfernt etwa mehrere Plugins gleichzeitig, denn diese
Damit das Plugin auch nach Netbox- die Truppe, die im Rechenzentrum han lassen sich mit einer Zeile pro Instanz in
Updates weiterhin zur Verfügung steht, tiert, ein Gerät aus einem Schrank und der Datei angeben. Ein Echo-Befehl (Lis
empfiehlt es sich, in der Datei ~/netbox/ vergisst danach, die DNS-Einträge zu lö ting 2, Zeile 3) aktiviert das Plugin dauer
local_requirements.txt den Eintrag schen, resultiert daraus mit einiger Wahr haft, ein kurzes Kommando im Netbox-
netbox_qrcode zu hinterlegen. Dann in scheinlichkeit früher oder später Verwir Ordner (Zeile 4) fügt den Netbox-Tabel
stalliert Netbox das Plugin automatisch rung. Begünstigt wird das durch den len die für DNS-Einträge benötigten
08.2023 www.linux-magazin.de 31
Titelthema Netbox
32 www.linux-magazin.de 08.2023
Netbox Titelthema
© Netbox Community
beim Zeichnen der Netz
werkpläne, und es fällt
Nacharbeit an.
Die Installation der Er
weiterung unterscheidet
sich von jener der ande 5 Das UI-Plugin zeichnet aus den in Netbox vorgehaltenen Daten Netzpläne. Das klappt freilich nicht
ren Plugins, jedoch nur in ohne einen möglichst genauen, gut gepflegten Netbox-Datensatz.
einem kleinen Detail: Das
UI-Plugin ist nicht per
Pip zu beziehen. Stattdessen holen die Satte Auswahl Nützlichkeit der Lösung aber nochmals
Befehle aus Listing 4 das Addon auf das erheblich. Längst hat es sich im moder
System. Als Nächstes steht der Eintrag Die hier gezeigten Plugins stellen nur nen Rechenzentrum eingebürgert, Wis
nextbox‑ui‑plugin in der local_requi‑ eine kleine Auswahl der sinnvollen Er sen möglichst zuverlässig und zentral
rements.txt an. Der passende Eintrag weiterungen dar. vorzuhalten. Über entsprechende Erwei
zum Laden des Plugins in der Netbox- Liebäugeln Sie mit noch mehr Addons, terungen kann Netbox diese Rolle um
Konfiguration lautet dann netbox_ui_ dann sehen Sie sich am besten auf der fassend erfüllen. Es macht dann separat
plugin. Website von Awesome Netbox um: gepflegte BGP- und DNS-Daten ebenso
Das Plugin hat eine ganze Reihe von Dort findet sich eine kuratierte Liste der überflüssig wie mit Visio & Co. gezeich
Konfigurationsmöglichkeiten, die die Git Netbox-Entwickler mit vielen nützlichen nete Netzwerkpläne.
hub-Seite umfassend dokumentiert. Da Plugins. Dazu zählen unter anderem eine Obendrein bietet Netbox eine ganze
bei spielt der Parameter layers_sort_ Telefonbuchverwaltung, eine Anbindung Reihe von Plugins für Statusdienste:
order eine ganz besondere Rolle: Dieser an OIDC, ein IP-Rechner für Netzwerke, Möchten Sie etwa die in Netbox hinter
Parameter bestimmt die Reihenfolge der Schnittstellen zu RouterOS sowie ein legten Geräte automatisch überwachen,
dargestellten Geräte in der fertigen Ab komplettes Lifecycle-Management, in liefert der Prometheus-Exporter sämt
bildung. Danach stehen nur noch ein dem sich Details zum Support einzelner liche Nutzdaten in einem Format, die das
paar vorbereitende Aufgaben an: In der Geräte hinterlegen lassen. Monitoring-System nativ verwenden
Python-venv-Umgebung richten die bei kann. Zumindest für Netzwerkhardware
den letzten Befehle aus Listing 4 das wird Netbox damit zusätzlich zur maß
Fazit
Plugin auf der Netbox-Seite endgültig geblichen Konfigurationsquelle für das
ein. Ein Neustart schaltet die Konfigura Netbox lässt sich bereits allein vielseitig Monitoring. Kurz gesagt: Wer Netbox
tion am Ende wie gewohnt scharf. einsetzen, manche Plugins erhöhen die klug einsetzt, der erschlägt damit viele
Probleme auf einen Streich. (jcb/jlu) █
Listing 4: Netzplan-Plugin
$ git clone https://github.com/iDebugAll/nextbox‑ui‑plugin Dateien zum Artikel
herunterladen unter
$ cd nextbox‑ui‑plugin
www.lm-online.de/dl/49236
$ source /opt/netbox/venv/bin/activate
$ pip3 install .
[...] Weitere Infos und
$ python3 manage.py collectstatic interessante Links
$ python3 manage.py migrate www.lm-online.de/qr/49236
08.2023 www.linux-magazin.de 33
MAGAZIN -GUT SCHEIN
5 EURO
33 %
Rabatt
TESTEN SIE
3 AUSGABEN
FÜR 21,00 €
OHNE DVD 17,00 €
ABO-VORTEILE
• Günstiger als am Kiosk
• Versandkostenfrei
bequem per Post
• Pünktlich und aktuell
Telefon: 0911 / 9939 90 98
• Keine Ausgabe verpassen
E-Mail: computec@dpv.de
Neben dem Linux-Magazin ohne DVD als symbolischer Link auf ihre Pendants bücher. Netbox erfasst komplexe Netz-
gibt es die DELUG-Ausgabe mit einem unter /usr/bin/. Sämtliche proprietäre werkinfrastrukturen und offeriert ein IP
speziell zusammengestellten Datenträ- Firmware sammelt ab sofort das Reposi- Address Management. Entwicklern von
ger. Gebündelt unter einer HTML-Oberflä- tory non-free-firmware. REST-Schnittstellen greift Swagger unter
che enthält er Programme und Tools, die die Arme: Das Toolkit erstellt aus einer In-
wir in der jeweiligen Ausgabe testen, so- terface-Beschreibung automatisch Quell-
CLT 2023
wie nicht im Heft besprochene Software, code und eine passende Dokumentation.
die die Redaktion besonders empfiehlt. Drehen Sie die DVD um und greifen mit Ebenfalls auf der DVD warten die aktu-
dem Webbrowser darauf zu, landen Sie ellen Versionen von Owncloud Infinite
in einem HTML-Menü mit zahlreichen Scale sowie Memtest86+. Letzteres
Seite A: Debian
weiteren exklusiven Inhalten. Als Erstes nimmt den Hauptspeicher unter die
Von der Seite A der DVD startet ein Ins- stechen die 40 Vorträge von den Chem- Lupe und entdeckt defekte Speicherrie-
tallationsassistent, der Debian 12 „Book- nitzer Linux-Tagen 2023 hervor, die eine gel. Die hoch skalierbare Filesharing-
1
worm“ einrichtet . Gegenüber der Vor- breite Themenpalette abdecken. Im Fo- Plattform Infinite Scale bindet in ihrer
version gibt es vor allem frischere Soft- kus standen fortgeschrittene Netzwerk- Version 3.0.0 per ICAP Virenscanner ein
ware, darunter den Kernel 6.1 LTS, Apa- themen sowie die Programmierung in und kann mit ihrer File Firewall gezielt
che 2.4.57, MariaDB 10.11 und PHP 8.2. Rust, Go und der Java-Alternative Kotlin. den Upload von Dateien unterbinden.
Das Dateisystem folgt jetzt konsequent Darüber hinaus gab es unter anderem Bei Interesse klöppeln Sie mit Build-
dem sogenannten Usrmerge-Layout. Da- Sicherheitstipps für die Datenbank Post- root Ihr eigenes System für IoT-Geräte,
bei zeigen Systemverzeichnisse wie /bin greSQL und eine Troubleshooting-Hilfe lesen RSS-Feeds mit fünf verschiedenen
für Systemadministratoren. Readern, zünden den schlanken Webser-
ver Lighttpd, jonglieren C- und C++-Bib-
Inhalt Titelthema Dokumentieren liotheken mit den Paketmanagern Vcpkg
und Conan, lassen Software von Jenkins
36 Tooltipps
Passend zum Titelthema dieser Ausgabe bauen, erkunden die neuen Features in
Sechs CLI-Werkzeuge im Kurztest stehen auf der DVD vier hilfreiche Doku- Rust 1.70, übersetzen C-Code mit einem
38 Bitparade mentationswerkzeuge bereit. Mit DAPS 512 Byte kleinen Compiler oder vertiefen
und DITA verfassen Sie schnell umfang- sich in Software zu den weiteren Artikeln
Fünf RSS-Feed-Reader im Vergleich
reiche technische Dokumente und Hand- dieses Hefts. (jlu) █
08.2023 www.linux-magazin.de 35
Software Tooltipps
Atuin verwaltet den Shell-Befehlsverlauf Einfache Berechnungen lassen sich Das Rust-basierte Diffsitter will GNU Diff
in einer PostgreSQL-Datenbank. Sie kom- schnell in der Shell erledigen, für komple- vor allem beim Vergleichen von Quell-
pilieren das Rust-Programm selbst oder xere Aufgaben benötigen Sie jedoch eine code Konkurrenz machen. In den gängi-
greifen auf eines der Binärpakete bei Git- höhere Skriptsprache oder ein Tool wie gen Distributionen fehlt es noch. Sie
hub zurück. Nach der Installation füllen Calculator. In den Repos der gängigen kompilieren das Tool wahlweise selbst
Sie den noch leeren Atuin-Befehlsverlauf Distributionen suchen Sie es vergeblich, oder greifen auf eines der Binärpakete
durch einen Aufruf mit dem Unterbefehl sodass Sie es selbst kompilieren müssen. auf Github zurück. Letztere setzen eine
import. Das Tool liest den Inhalt der Shell- Bei der Dokumentation gibt sich das Tool Glibc 2.32 oder höher voraus.
History ein und schreibt ihn in die Daten- sparsam. Ohne Parameter aufgerufen, Ohne Parameter aufgerufen, gibt Diff-
bank, die Sie nun per search durchsu- zeigt Calculator immerhin eine Online- sitter eine Crash-Meldung aus. Eine einfa-
chen können. Kombinieren Sie das mit Hilfe an, die alle wichtigen Parameter und che Online-Hilfe erhalten Sie mit ‑h. Der
dem Parameter ‑h, zeigt Atuin alle Ein- unterstützten Funktionen auflistet. Unterbefehl list liefert eine Liste aller
stellungsmöglichkeiten einer Suchanfra- Neben den Grundrechenarten be- 15 unterstützten Programmier- und Satz-
ge. Mit ‑before und ‑after beschränken herrscht Calculator mehr als 20 weitere sprachen. Kann Diffsitter das Format der
Sie die Suche auf einen Zeitraum. Mit ‑i mathematische Operationen, darunter zu vergleichenden Dateien nicht erken-
starten Sie Atuin im interaktiven Modus, neben einfachen Funktionen wie min nen, wirft es eine Fehlermeldung aus.
das Format der Ausgabe passen Sie mit oder max auch komplexere Berechnun- Über ‑t geben Sie das Format explizit vor.
‑f an Ihre Wünsche an. gen wie die Fibonacci-Folge. Die Operan- Das Tool versucht, anhand des Formats
Mit dem Aufruf atuin init erzeugt den übergeben Sie als Aufrufparameter einen semantisch sinnvollen Vergleich zu
das Tool eine an die jeweilige Shell ange- oder aktivieren mit ‑d einen interaktiven erzeugen. Unterschiede in der Codefor-
passte Konfiguration, die Sie in die ent- Modus. Um Calculator in eigene Skripte matierung berücksichtigt es dabei nicht.
sprechende Konfigurationsdatei einbin- zu integrieren, leiten Sie die Berechnun- Mit ‑‑color deaktivieren Sie die stan-
den. Über den Unterbefehl stats erfah- gen via Pipe an das Tool weiter. Es rückt dardmäßige Einfärbung der Ausgabe.
ren Sie, wie oft bestimmte Kommandos die Ausgabe gut lesbar ein und setzt ein Diffsitter erwartet seine Konfiguration
im Verlauf vorkommen. Atuin erlaubt, die Gleichheitszeichen vor das Ergebnis. Um unter $HOME/.config/diffsitter/con‑
History auf einem Server zu verwalten. das Resultat automatisiert weiterzuver fig.json5. Mit dump‑default‑config
Der Entwickler stellt dazu einen zentra- arbeiten, deaktivieren Sie mit ‑r diese aufgerufen, schreibt es alle Einstellungen
len Atuin-Server bereit. Um Ihre Befehls- Formatierung. Beschränken Sie bei Dezi- in die Standardausgabe, sodass Sie sie als
verläufe lokal zu verwalten, starten Sie malausgaben die Nachkommastellen Vorlage für eigene Anpassungen nutzen
per server eine eigene Instanz. Im Test nicht mit dem Parameter ‑p, entscheidet können. Durch ein Vervollständigungs-
wollte sich der Atuin-Client partout nicht Calculator selbst, wie viele Stellen es an- skript in der jeweiligen Shell-Konfigurati-
mit dem eigenen Server verbinden, die zeigt. Rufen Sie das Tool mit ‑s auf, zeigt on erleichtern Sie sich die Nutzung von
sehr knappe Dokumentation half da es nicht nur das Ergebnis an, sondern die Diffsitter. Den benötigten Code erzeugen
auch nicht weiter. vollständige Gleichung. Sie durch einen Aufruf des Tools mit
■■■■■ Atuin bietet eine moderne ■■■■■ Calculator bietet eine inter- gen‑completion.
Möglichkeit, Befehlsverläufe einer Shell zu essante und vielseitige Möglichkeit für ■■■■■ Diffsitter ist eine recht inter-
verwalten, erfordert aber Handarbeit. █ Berechnungen in der Konsole. █ essante Alternative zu GNU Diff. █
36 www.linux-magazin.de 08.2023
Tooltipps Software
Viele Anwender hält der damit verbun- Mit dem Go-basierten Tool P0d ermitteln Auch heute liefern noch zahlreiche Sei-
dene Aufwand vom Betrieb eines eige- Sie die Geschwindigkeit eines Webauf- ten ihre Schlagzeilen als RSS aus. Mit
nen Wikis ab. Verwalten Sie Wissen lieber tritts. Binärpakete und den Quellcode dem C-basierten Tool Trss rufen Sie die
in strukturierten Textdateien, dann ist gibt es auf Github. Im Archiv findet sich Meldungen in der Kommandozeile ab.
möglicherweise Mdwiki das Richtige für neben der ausführbaren Datei auch ein Das Programm-Repo bietet keine ferti-
Sie. Als Bash-Skript hat es außer Git und README mit Anwendungsbeispielen so- gen Releases, Sie müssen den Code
Awk keinerlei größere Abhängigkeiten; wie einer Beispielkonfiguration. selbst kompilieren. Im Quellarchiv steht
die meisten genutzten Befehle und Funk- Sie steuern P0d über Aufrufparameter, eine kurze README-Datei als Anleitung
tionen zählen zum Unix-Standard. wobei ‑h eine Übersicht aller Optionen bereit, eine ausführliche Manpage fehlt.
Sie klonen den Code als ZIP-Datei von liefert. Für einen einfachen Test überge- Der Aufrufparameter ‑h liefert eine rudi-
Codeberg.org und können Mdwiki sofort ben Sie dem Tool die URL des zu prüfen- mentäre Online-Hilfe.
nach dem Entpacken betreiben. Das Ar- den Webauftritts. P0d zeigt zunächst an, Trss erwartet beim Aufruf die Angabe
chiv enthält ein einfaches README, das wie schnell die Internet-Anbindung ist. einer URL mit RSS-Feed und listet dann
die Installation beschreibt. Die dort zi- Mit dem Parameter ‑s überspringt es auf alle enthaltenen Einträge nach Zeitstem-
tierte Online-Hilfe ist jedoch nicht mehr Wunsch den Speed-Test. Das Tool öffnet pel sortiert auf. Um nur den jüngsten
aktuell. Rufen Sie stattdessen Mdwiki mit dann genau eine HTTP/1.1-Verbindung Post anzuzeigen, verwenden Sie den Pa-
‑h auf, um die aktuellen Optionen zu er- und sendet 10 Sekunden lang Anfragen rameter ‑l. Mit ‑u gibt Trss lediglich die
fahren. Mit ‑e legen Sie neue Wiki-Seiten an das Ziel. Die Ausgabe aktualisiert P0d URLs der einzelnen Feed-Einträge aus.
an oder bearbeiten bestehende. Als For- zur Laufzeit permanent. Im Ergebnis se- Für den regelmäßigen Einsatz tragen Sie
matierungssyntax dient die Satzsprache hen Sie die Anzahl der verarbeiteten An- am besten alle RSS-Feed-Links in die Da-
Markdown. Seine Grundkonfiguration fragen, die Latenz der Gegenstelle und tei $HOME/.config/trss/urls ein. Eine
speichert Mdwiki in $HOME/.config/ die Zahl der Übertragungsfehler. Übersicht aller dort hinterlegten Feeds
mdwiki.ini. Hier geben Sie das Verzeich- Um mehrere Verbindungen zum Ziel liefert ‑L. Im selben Verzeichnis pflegt
nis für die Wiki-Dateien und den ge- aufzubauen, geben Sie die Anzahl mit ‑c das Tool eine Cache-Datei mit allen be-
wünschten Editor vor oder legen Pager vor. Das Prüfintervall setzen Sie mit ‑d reits angezeigten Beiträgen. Darauf ba-
fest. Eine Auflistung aller Wiki-Dateien – auf einen Wert Ihrer Wahl. Zur automati- sierend ermittelt es mit ‑c, wie viele
sie entsprechen jeweils einer Seite – er- sierten Weiterverarbeitung speichern Sie neue Posts seit dem letzten Lesen hinzu-
halten Sie mit dem Parameter ‑l. Um das Resultat mit ‑O im JSON-Format. Für gekommen sind. Starten Sie Trss mit ‑O,
eine Seite zu lesen, rufen Sie sie mit ‑r regelmäßige Tests hinterlegen Sie alle öffnet es alle ungelesenen RSS-Links im
auf. Zum externen Speichern und zur Parameter samt Ziel-URL in einer YAML- Standard-Webbrowser. Um nur den letz-
Versionierung kombinieren Sie Mdwiki Datei, die Sie P0d beim Aufruf mit dem ten Beitrag zu öffnen, geben Sie Trss
mit Git. Dann geben Sie über ‑‑git‑re‑ Parameter ‑C übergeben. Dabei können stattdessen ‑o mit.
mote ein externes Git-Repo an. Der Ab- Sie auch die Anfragemethode festlegen, ■■■■■ Trss verwaltet die RSS-Feeds
gleich erfolgt über ‑‑push und ‑‑pull. was via Parameter nicht gelingt. zwar in der Konsole, greift für die Anzei-
■■■■■ Mdwiki ermöglicht, Wissen ■■■■■ P0d ist ein handliches Werk- ge der Beiträge jedoch wieder auf den
in Textdateien zu strukturieren und auch zeug, mit dem Sie die Reaktionszeiten ei- für xdg‑open hinterlegten Webbrowser
ohne Webbrowser darauf zuzugreifen. █ ner Webseite präzise ermitteln. █ zurück. (Uwe Vollbracht/jlu) █
08.2023 www.linux-magazin.de 37
© Allan Swart / 123RF.com
Nachrichten empfangen mit RSS-Feedreadern
Schlagzeilen
Für den simultanen Empfang themenspezifischer Nachrichten aus mehreren Quellen sind
RSS-Feeds nach wie vor erste Wahl. Wir haben uns deshalb einige der grafischen Feedreader
unter Linux näher angesehen. Erik Bärwaldt
Das Internet bietet eine Fülle von Nach- das Verbreiten von Nachrichten und in die jeweiligen Arbeitsoberflächen in-
richtenseiten, die Sie mit tagesaktuellen Informationen etabliert. Größere Web- tegrieren, sondern auch solche, die sich
Neuheiten versorgen. Auch soziale Netz- sites und auch Blogs bieten ihre Inhalte auf der Kommandozeile nutzen lassen.
werke wie Twitter oder Facebook verbrei- oft als RSS-Feed an. Dabei werden die Einige PIM-Anwendungen wie Evolution
ten Nachrichten, teils sogar wie Face- Nachrichten in Form von Schlagzeilen oder Thunderbird implementieren eben-
book News über eigene Bereiche für und Textanrissen in eigenen RSS-Feed falls RSS-Feedreader; dasselbe gilt für
journalistische Inhalte. Doch viele dieser readern angezeigt, sodass Sie nicht um- Produktivitätssoftware wie Makagiga.
Angebote haben einen Haken: Sie sam- ständlich im Webbrowser navigieren Für die gängigen Webbrowser gibt es
meln fleißig Daten über ihre Nutzer, und müssen. Die übersichtlichere Darstellung zudem Erweiterungen, die es ermögli-
es ist nicht klar, zu welchen Zwecken der Inhalte im RSS-Reader erlaubt zudem chen, RSS-Feeds direkt im geöffneten
sie diese Daten verwenden. Obendrein eine schnellere Auswahl der für Sie rele- Browser zu empfangen.
findet sich in kostenlosen Angeboten vanten Informationen. Um die Inhalte eines RSS-Feeds anzu-
häufig penetrante Werbung, die von den Linux entpuppt sich bei der Verfüg- sehen, benötigen Sie nicht nur ein ent-
eigentlichen Inhalten ablenkt. barkeit von nativen RSS-Readern als sprechendes Programm oder – im Fall
Seit den späten 2000ern haben sich wahres Füllhorn: So finden Sie unter von Webbrowsern – eine passende Er-
die RSS-Formate (kurz für Rich Site Sum- dem freien Betriebssystem nicht nur gra- weiterung, sondern müssen auch den
mary oder Really Simple Syndication) für fische RSS-Feedreader, die sich nahtlos gewünschten Feed abonnieren. Die
38 www.linux-magazin.de 08.2023
Bitparade Software
■ Akregator
Das freie Programm Akregator gehört
zum Fundus des KDE-Plasma-Desk-
tops . Die Software befindet sich seit
über 15 Jahren in permanenter Entwick-
lung und findet sich in den Repositories
aller gängigen Linux-Derivate. Zwar ge- 1 Akregator kommt mit einer konventionellen Oberfläche.
hört Akregator zur KDE-PIM-Suite Kon-
tact, lässt sich aber problemlos auch un-
ter anderen Arbeitsoberflächen installie- in dieser Gruppe an, ob Sie dazu die im blocker bietet eigene Einstellungen, die
ren und ohne Einschränkungen nutzen. System voreingestellte Anwendung oder Sie durch einen Klick auf den Button mit
Die konventionelle Oberfläche des einen anderen Browser verwenden dem Zahnradsymbol aufrufen. Im ent-
Readers stellt am oberen Fensterrand möchten. Ergänzend geben Sie in einer sprechenden Dialog setzen Sie ein Häk-
eine Menü- und eine Werkzeugleiste be- eigenen Eingabezeile den Befehl zum chen vor Werbefilter aktivieren und Blo-
1
reit . Links im Fenster erscheinen die Aufruf des Browsers an. ckierte Elemente ausblenden. Anschlie-
abonnierten Nachrichtenquellen unter Eine weitere wichtige Einstellung fin- ßend abonnieren Sie bei Bedarf durch
einander. Rechts oben finden Sie eine den Sie in der letzten Kategorie Module. einen Klick auf die entsprechende Schalt-
Zeile zur freien Texteingabe, mit der Sie Voreingestellt blockiert der interne Brow- fläche rechts im Dialog Listen für das Fil-
nach Begriffen innerhalb von Artikeln ser von Akregator weder Werbung noch tern von Werbeeinblendungen. Sie stam-
suchen. Ein kleinerer Bereich darunter Tracker. Das führt auf vielen Webseiten men größtenteils aus dem Fundus des
zeigt die einzelnen Nachrichtentitel samt dazu, dass Sie aufgrund penetranter bekannten Werbeblockers Adblock Plus.
Autor und Datum an. Unter diesem wie- Reklame die eigentlichen Inhalte kaum Haben Sie alle Einstellungen vorge-
derum erscheint eine Verlinkung auf den noch finden. In der Gruppe Module akti- nommen, klicken Sie unten rechts im
eigentlichen Artikel mit einem Anreißer. vieren Sie daher am besten durch Setzen Fenster auf Anwenden. Die neuen Einstel-
eines Häkchens die Webengine-Module lungen greifen jedoch erst nach einem
Einstellungen 2
AdBlock und Do Not Track . Der Werbe- Neustart des RSS-Readers.
08.2023 www.linux-magazin.de 39
Software Bitparade
Defizite
Zwar stellt Akregator eine durchdachte
Lösung für das Lesen von RSS-Feeds dar,
weist jedoch auch einige Defizite auf, die
vor allem die Browser-Engine betreffen.
So blenden zwar die Werbefilter uner-
4 Beim ersten Start überrascht Fluent Reader mit einer ungewöhnlichen Oberfläche. wünschte Inhalte aus, nutzen jedoch den
40 www.linux-magazin.de 08.2023
Bitparade Software
08.2023 www.linux-magazin.de 41
Software Bitparade
im Kontextmenü öffnet nicht voneinander se- öffnenden Dialog wählen Sie zunächst
der Reader den dazu im pariert anzeigt. Hier den Feed, für den Sie die Regeln festle-
System installierten Web- sollten Sie die Mög- gen möchten. Anschließend geben Sie in
browser. lichkeit nutzen, Feeds den Feldern der Gruppe Neue Regel die
in Gruppen zusam- jeweiligen Auswahlkriterien und darunter
menzufassen. Im Ein- die auszuführende Aktion an. Da es sich
Ansichtssache
stellungsmenü finden bei den Feldern meist um Auswahlfelder
Die ungewöhnliche Ka- Sie dazu den Reiter handelt, können Sie Regeln sehr schnell
chelansicht der Nachrich- Gruppen. Darin legen und effizient definieren. Anschließend
ten können Sie modifizie- Sie wahlfrei Gruppen klicken Sie auf den Button Bestätigen, um
ren, indem Sie oben an und weisen ihnen die neue(n) Regel(n) in Kraft zu setzen.
rechts in der Titelleiste Feeds zu. Sie sehen
des primären Programm- dann in den einzelnen
Aufräumarbeiten
fensters auf das Augen- Ansichten nur noch
symbol klicken. Es öffnet die Nachrichten der Um ältere Nachrichten zu entfernen, öff-
sich ein Menü zur Aus- Feeds, die zur aktiven nen Sie im Einstellungsmenü den Reiter
wahl der Ansichtsmodi Gruppe gehören. Da Löschen. Hier geben Sie im Feld Aufräu-
Liste, Magazin und Kom- 7 Gnome Gfeeds verzichtet Fluent Reader die men an, in welchen Intervallen der Rea-
pakt. Die Listenansicht auf jegliche Gimmicks. Gruppen innerhalb der Beiträge löschen soll. Um Daten dau-
kommt dabei der Ober- der Baumansicht zu- erhaft zu sichern, nutzen Sie den darun-
fläche konventioneller sammen mit den je- ter befindlichen Dialog App-Daten | Si-
RSS-Reader am nächsten. Da diese An- weiligen Feeds gesondert aufführt, kön- chern und wählen im sich daraufhin öff-
sicht nicht nach einzelnen Feeds unter- nen Sie schnell zwischen den einzelnen nenden Dateimanager Pfad und Dateina-
scheidet, klicken Sie ganz links in der Nachrichtensträngen wechseln, was die men für das Backup.
Titelleiste auf das Hamburger-Menü und Übersicht deutlich verbessert.
öffnen darüber eine dritte vertikale Spal-
■ Gfeeds
te mit einer Liste der aktiven Abonne-
Regulatorisch
ments und einer Suchfunktion. Die Gnome-Arbeitsumgebung bringt
Mit Fluent Reader können Sie Feeds mit einen eigenen Feedreader mit, der sich
bestimmten Regeln versehen und sich so auch unter anderen Desktop-Umgebun-
Gruppendynamik
beispielsweise nur Beiträge anzeigen las- gen nutzen lässt. Gemäß der Gnome-
Bei vielen Newsfeed-Abos geht vor allem sen, die im Titel oder Text einen definier- Bedienphilosophie beschränkt sich die
bei eingeschalteter Kachelansicht schnell ten Begriff aufweisen. Um solche Regeln Gfeeds genannte Anwendung auf die
der Überblick verloren, da Fluent Reader zu definieren, klicken Sie im Einstellungs- essenziellsten Funktionen. Nach einem
die Nachrichten verschiedener Feeds menü auf den Reiter Regeln. Im sich nun Klick auf den entsprechenden Starter öff-
net sich ein Fenster, das
Sie auffordert, einen neu-
en Feed hinzuzufügen .7
Dazu klicken Sie auf das
Pluszeichen oben links in
der Titelleiste und geben
dann die entsprechende
URL ein. Bestätigen Sie
diese durch einen Klick
auf Hinzufügen. Gfeeds
öffnet den Feed und zeigt
die Überschriften der ein-
zelnen Beiträge unterein-
ander an. Das Programm-
fenster weist voreinge-
stellt die Dimension eines
Smartphone-Displays auf,
und Sie sehen weder An-
reißer noch Gruppen. Ein
Klick auf eine der Nach-
richten öffnet diese im in-
8 In Gfeeds stört Werbung die Lektüre der Nachrichten. ternen Browser. Sobald
42 www.linux-magazin.de 08.2023
Bitparade Software
Bedienung
Die Bedienelemente von Gfeeds befin-
den sich alle in der Titelleiste der Soft-
ware. Links im Fenster können Sie im
Vollbildmodus die Quellen neu laden,
Feeds wählen und eine Suche vorneh-
men. Außerdem nehmen Sie hier mithilfe
des Hamburger-Menüs Einstellungen
vor. Dabei verwalten Sie die einzelnen
Feeds in einem gesonderten Dialog, kön-
nen jedoch über die Option Einstellungen
die allgemeine Programmkonfiguration
modifizieren. Hier legen Sie beispielswei-
se das Verhalten der Software beim Start,
die Anzeigeoptionen und die Löschinter-
valle für ältere Nachrichten fest. 9 Die Oberfläche von Liferea ist recht konventionell gestaltet.
Im Anzeigesegment für die Beiträge
finden Sie rechts einen Button, mit dem
Sie die jeweils aktuelle Nachricht in waltung besteht in der Konfiguration der Repos aller gängigen Linux-Distributio-
einem externen Browser öffnen. Links in Schlagwörter, die Sie einzelnen Feeds zu- nen, lässt sich aber auch über die Github-
der Titelleiste gibt es eine Schaltfläche ordnen können. Auch dazu markieren Sie Seite des Projekts beziehen.
zum Einstellen der Ansicht. In deren Kon- zunächst den betreffenden Feed. Dann Liferea kommt mit einer konventionel-
textmenü wählen Sie zwischen der Web- öffnen Sie mit einem Klick auf das Etiket- len dreigeteilten Oberfläche aus Menü-
ansicht, der RSS-Inhaltsansicht und einer tensymbol oben links im Fenster den Dia- zeile, links angeordneter Feed-Liste und
Leseansicht. Letztere beschränkt sich auf log zur Eingabe neuer oder zum Löschen Anzeigebereich rechts im größten Fens-
reinen Text und stellt daher die Nachrich- bestehender Schlagwörter. 9
tersegment . Voreingestellt sind be-
ten häufig nicht vollständig dar. reits diverse RSS-Feeds abonniert, sodass
In der RSS-Inhaltsansicht können Sie beim ersten Start gleich mehrere hun-
Artikel sichern
auch Links anklicken, die sich dann in dert ungelesene Nachrichten in der Liste
einem externen Webbrowser öffnen. Die Zum Sichern von Artikeln rechtsklicken der Beispielabonnements erscheinen.
Webansicht aktiviert dagegen die Inhalte Sie den gewünschten Beitrag in der ver- Liferea hebt sich durch die Vielzahl der
im internen Browser. Da Gfeeds jedoch tikalen Artikelliste und wählen aus dem nutzbaren Formate von anderen RSS-
über keinerlei Werbe- und Tracking-Blo- sich öffnenden Kontextmenü die Option Readern ab. Es unterstützt neben den
cker verfügt, erscheint dabei auch Wer- Artikel speichern. Gfeeds sichert den Arti- verschiedenen RSS-Versionen auch
8
bung . Bei werbelastigen Seiten kann kel, wozu jedoch in der Liste keinerlei ATOM, CDF und OPML. Es kann daneben
es daher sinnvoll sein, sie im externen Kennzeichnung erscheint. Die gespei- auch mit Podcasts umgehen, wobei es
Browser mit Werbeblocker und Tracking- cherten Artikel rufen Sie jederzeit durch einzelne Episoden herunterlädt und ab-
Schutz zu betrachten. einen Klick auf die Schaltfläche Gespei- spielt. Der integrierte Webbrowser von
chert unten links im Programmfenster Liferea setzt auf die freie Rendering-Engi-
auf. Sie erscheinen dann anstelle der nor- ne Webkit auf. Die Anwendung startet
Verwaltung
malen Beiträge in der Leiste links im nicht nur blitzschnell, sondern ruft auch
Auch zum Verwalten von Feeds bietet Fenster. Die gespeicherten Beiträge las- die einzelnen Feeds zügig ab, sodass die
Gfeeds nur Grundfunktionen. Sie können sen sich auch dann noch abrufen, wenn Angelegenheit selbst bei vielen Abonne-
die abonnierten Feeds über den Punkt Sie den dazugehörigen Feed löschen. ments nicht zur Geduldsprobe ausartet.
Feeds verwalten des Hamburger-Menüs Nach einem Klick auf einen der Feeds
einsehen. Im entsprechenden Dialog
■ Liferea teilt sich das rechte Fenstersegment:
markieren Sie einzelne Feeds durch Set- Oben erscheinen die Schlagzeilen der
zen eines Häkchens hinter dem Eintrag, Mit fast 20 Jahren permanenter Entwick- einzelnen Nachrichten, unten die Inhalte
den Sie dann mit einem Klick auf das Pa- lung gehört Liferea zu den Dinosauri- in Kurzform. Daher empfiehlt es sich, das
pierkorbsymbol oben rechts löschen. Die ern unter den RSS-Aggregatoren. Das Programm im Vollbildmodus einzusetzen.
einzige weitere Funktion der Feed-Ver- freie GTK+-Programm findet sich in den Ein Doppelklick auf eine der Nachrichten
08.2023 www.linux-magazin.de 43
Software Bitparade
44 www.linux-magazin.de 08.2023
Bitparade Software
Klick auf den Button + Suchordner in der nun bei Bedarf den Feed
Baumstruktur anlegt. im selben Fenster noch
einem anderen Ordner
■ QuiteRSS hinzufügen.
Haben Sie alle Anga-
QuiteRSS ist ein in C++ geschriebener ben vorgenommen, kli-
und auf den Qt-Bibliotheken basieren- cken Sie auf Abschließen.
der, plattformübergreifend erhältlicher QuiteRSS integriert den
RSS-Reader . Das Programm findet sich Feed daraufhin links in
in den Paketarchiven aller gängigen Dis- der Baumansicht. Dabei
tributionen, lässt sich jedoch auch von fokussiert die Ansicht
der Webseite des Projekts beziehen. Die automatisch auf den
Desktop-unabhängige Anwendung neuen Eintrag, während
unterstützt die gängigen RSS-Formate der Reader im Hinter-
sowie ATOM. Als Besonderheit integriert grund die neuen Nach-
sie einen eigenen Webbrowser samt be- richten des Feeds abruft.
reits aktiviertem Adblocker. Rechts finden Sie dar-
Das Programm verfügt über eine mo- aufhin die letzten neuen
derne Reiterstruktur. Anstelle einer Schal- Nachrichten dieses
ter- und Menüleiste sehen Sie nach dem Feeds als Schlagzeilen.
Start zunächst nur einen Menüknopf links
oben im Programmfenster. Über ihn errei-
Kategorisierung
chen Sie in einer mehrstufigen Hierarchie
alle Befehle und Funktionen der Applika- Mithilfe von Tags kate- w Der Werbeblocker von QuiteRSS kennt weder deutsche
tion. Drei Schaltflächen unterhalb des gorisieren Sie einzelne Filterlisten, noch lassen sich solche hinzufügen.
ersten Reiters links gestatten den Zugriff Nachrichten. Dazu nutzt
auf die wichtigsten Funktionen der Ord- die Software verschiede-
ner- und Feed-Struktur. Eine herkömm ne vorkonfigurierte Kennzeichen. Die che Dreieck öffnet ein Auswahlmenü mit
liche Schalterleiste erscheint erst dann, einzelnen Kategorien finden Sie unten gut einem Dutzend sozialen Netzwerken.
wenn Sie den ersten Feed abonniert und links in der vertikalen Leiste aufgelistet. Außerdem können Sie die Nachricht
dessen Nachrichten abgerufen haben. Um eine markierte Nachricht einzusortie- über einen E-Mail-Client verschicken
Dabei teilt sich auch das rechte Fenster- ren, klicken Sie oben in der Schalterleiste oder mithilfe des Online-Diensts Print-
segment in einen Schlagzeilen- und auf das kleine offene Dreieck rechts ne- friendly druckgerecht aufbereiten.
q
einen Anzeigebereich . ben dem Etikettensymbol und wählen
danach im Menü die Kategorie.
Blockade
QuiteRSS kennzeichnet die Nachricht
Feeds einrichten
selbst in der Liste der Schlagzeilen nicht Der QuiteRSS-Reader verfügt über einen
Das Einrichten von Feeds und Ordner- gesondert, sondern übernimmt sie nur auf Adblock basierenden Werbeblocker.
strukturen erledigen Sie in QuiteRSS be- unten links im Fenster in
quem mit wenigen Mausklicks. Um einen die jeweilige Kategorie.
neuen Ordner hinzuzufügen, klicken Sie Möchten Sie später die
links oben auf das grüne Pluszeichen mit einem bestimmten
und wählen die Option Ordner. In einem Tag versehenen Nach-
neuen Dialog fügen Sie den Namen des richten durchsehen, kli-
Ordners ein und positionieren diesen cken Sie einfach in der
dann innerhalb der Ordnerhierarchie. Kategorienliste die ent-
Unterordner innerhalb eines Stammord- sprechende Gruppe an.
ners sind auch möglich. Die Anwendung listet
Anschließend rechtsklicken Sie links in dann alle entsprechen-
der Baumansicht den Ordner, in den Sie den Nachrichten auf.
einen Feed integrieren wollen. Im sich QuiteRSS ermöglicht
öffnenden Kontextmenü wählen Sie die es auch, Nachrichten zu
Option Hinzufügen und anschließend teilen. Dazu finden Sie in
Feed. Nun tragen Sie in einem gesonder- der horizontalen Schal-
ten Fenster die URL des gewünschten terleiste ein Handsym-
Feeds ein. Sie schließen die Eingabe mit bol. Ein Klick auf das e QuiteRSS bietet umfangreiche Optionen für das
einem Klick auf Weiter ab und können rechts daneben befindli- automatische Entfernen obsoleter Nachrichten.
08.2023 www.linux-magazin.de 45
Software Bitparade
Dazu finden Sie unten rechts im Pro- hen. Daher bietet Ihnen QuiteRSS die dass RSS-Nachrichten nach wie vor ihre
grammfenster das Stoppschildsymbol Möglichkeit, den Nachrichtenbestand Berechtigung haben. Möchten Sie unter
von Adblock. Ein Linksklick darauf öffnet regelmäßig nach festgelegten Kriterien Linux RSS-Feeds abonnieren, haben Sie
ein Konfigurationsfenster, in dem Sie den automatisiert zu bereinigen. in Sachen Reader die Qual der Wahl. Alle
Werbeblocker gegebenenfalls durch Set- Dazu klicken Sie auf den Menüschalter von uns getesteten Programme erlauben
zen eines Häkchens vor den entspre- und öffnen über den Menüpunkt Werk- ohne große Einarbeitung eine schnelle
chenden Optionen deaktivieren können. zeuge | Bereinigen den entsprechenden Navigation in den Nachrichten. Auch das
Die Sperrsoftware arbeitet im internen e
Dialog . Hier wählen Sie durch Setzen Abonnieren und Verwalten von Feeds
Browser des RSS-Readers und hat dazu eines Häkchens die gewünschten Feeds sowie das Löschen von Nachrichten-
auch einige Adblock-Filterlisten abon- aus und klicken unten rechts auf Weiter. strängen und einzelnen Beiträgen klappt
niert. Allerdings befinden sich unter den QuiteRSS zeigt Ihnen anschließend eine weitgehend intuitiv.
Abos keine Listen für das Blockieren Reihe von Optionen für die Bereinigung Unterschiede finden sich lediglich
deutschsprachiger Werbung. Mit einem an, die Sie jeweils durch Setzen oder beim Funktionsumfang der fünf Kandi-
Klick auf den Menüschalter oben links im Entfernen eines Häkchens aktivieren be- daten: Der einfache Gnome-Feedreader
Programmfenster und Auswahl des Ein- ziehungsweise ausschalten. Bei den Gfeeds beschränkt sich auf die üblichen
trags Browser im geöffneten Menü kön- Optionen Maximales Alter zu behaltender Grundfunktionen, während das KDE-Pen-
nen Sie mit der Option Adblock den Wer- Nachrichten (in Tagen) und Maximale An- dant Akregator sehr viele Sonderfunktio-
beblocker konfigurieren. zahl zu behaltender Nachrichten geben nen offeriert. Der Fluent Reader fällt
Im entsprechenden Einstellungsdialog Sie jeweils absolute Zahlen ein. durch sein optisches Erscheinungsbild
klicken Sie unten links auf Optionen und Damit sich in der Datenbank nicht aus dem Rahmen, ohne dabei Probleme
anschließend auf Filterabonnement hin- über längere Zeit gelöschte Einträge an- bei der Bedienung zu verursachen.
zufügen. Sie können nun aus einer Liste sammeln, setzen Sie zudem ein Häkchen Liferea glänzt durch die Unterstützung
verfügbarer Abonnements wählen . w vor der Option DB leeren. Diese Einstel- von Podcasts. QuiteRSS ist hingegen ein
Allerdings lassen sich keine zusätzlichen lungen aktivieren Sie mit einem Klick auf unauffälliger, sehr schnell arbeitender
Filterlisten hinzufügen. Sie können ledig- Abschließen. Danach bereinigt das Pro- Feedreader. Er bietet oft die beste Anzei-
lich einzelne eigene Filter in den Werbe- gramm die Datenbanken für die ausge- ge, weist jedoch Schwächen beim integ-
blocker einpflegen. wählten Feeds stets automatisch. rierten Werbeblocker auf. (jlu) █
Bereinigung Fazit
Weitere Infos und
Haben Sie viele Feeds mit überdurch- Die Vielzahl der Reader ebenso wie die interessante Links
schnittlicher Aktivität abonniert, dann zahlreichen auf Webseiten zur Verfügung www.lm-online.de/qr/48710
kann schnell die Übersicht verloren ge- gestellten Feeds belegen eindrucksvoll,
RSS-Feedreader: Features
Akregator Fluent Reader Gfeeds Liferea QuiteRSS
Lizenz GPLv2 BSD GPLv3 GPLv2 GPLv3
Funktionen
automatischer Feed-Abruf ■ ■ ■ ■ ■
Feed-Organisation in Ordnern ■ ■ ■ ■ ■
Nachrichten archivieren ■ ■ ■ ■ ■
Suchfunktion ■ ■ ■ ■ ■
E-Mail-Versand ■ ■ ■ ■ ■
Verlinkung in soziale Netze ■ ■ ■ ■ ■
interner Webbrowser
interner Browser ■ eingeschränkt ■ ■ ■
Reiter im Browser ■ ■ ■ ■ ■
Adblocker im Browser ■ ■ ■ ■ ■
unterstützte Formate
RSS 0.9x/1.0/2.0 ■ ■ ■ ■ ■
ATOM 1.0 ■ ■ ■ ■ ■
Podcasts-Plugin ■ ■ ■ ■ ■
46 www.linux-magazin.de 08.2023
ANZEIGE
Fractal Design
Define 7 PCGH Edition
5,25-Zoll-Halterung vorinstalliert
PCGH-Metallaufkleber im Lieferumfang
www.pcgh.de/define7
i / 123RF.com
hacamoncha
© Ekachai Lo
Persönliche Backups zu Hause und in der Cloud
Proprietäre Lösungen gehören in mei- ‑‑link‑dest ist, dass es den aktuellen Namen und einer Inode-Adresse. Demzu-
nen Augen stets in die Kategorie, die ich Rsync-Lauf mit einem bestehenden ver- folge gehört zu jeder Datei mindestens
häufig mit „niedrigster Priorität“ klassifi- gleicht. Neue und veränderte Dateien ein Hardlink, denn sonst ließe sich ihr
ziere. Tatsächlich fühle ich mich erst dann legt das Tool dabei im Zielverzeichnis wie Inhalt gar nicht finden. Gibt es nun meh-
wohl, wenn ich Prozesse über Linux- gewohnt an, für unveränderte Dateien rere Hardlinks zu ein und derselben Da-
Bordmittel abbilden kann oder sie nur erstellt es im Zielverzeichnis Hardlinks. tei, lässt sich nicht ohne Weiteres sagen,
wenig zusätzliche Software erfordern. Hardlinks sind ein Feature der gängi- hinter welchem davon sich das Original
Wegen der Option ‑‑link‑dest eignet gen Dateisysteme für Linux. Prinzipiell verbirgt (oder verborgen hat).
sich Rsync hervorragend zum Erzeu- steckt dahinter ein Eintrag im Dateisys- Rsync macht also nichts anderes, als
gen von Backups. Der große Bonus von tem. Jeder Hardlink besteht aus einem den Inhalten, die im Dateisystem unver-
48 www.linux-magazin.de 08.2023
Admin-as-a-Service Sysadmin
Listing 3: Retention
Listing 2: snapshot_root retain> > hourly> 4$
# All snapshots will be stored under this root directory. retain> > daily> 7$
# snapshot_root> /var/cache/rsnapshot/ retain> > weekly> 4$
snapshot_root> /backup/rsnapshot/ retain> > monthly>1$
08.2023 www.linux-magazin.de 49
Sysadmin Admin-as-a-Service
Man ruft die jeweiligen Rsnapshot-Level durchaus zügig wieder in der Lage, bei- ren, die meine Ansprüche besser be-
idealerweise über eine eigene Crontab spielsweise bestimme Nachweise zu er- dienten. Meine Prämissen lauteten:
auf. In meinem Fall ist das /etc/cron.d/ bringen – vorausgesetzt, ich schaffe es, • wenige Abhängigkeiten,
rsnapshot (Listing 4). eben diese Datenträger zu retten. • keine Daten verlassen unverschlüsselt
Da ich nur vier Hourly-Backups anferti- Die Überschwemmungskatastrophe im das Haus und
ge, muss ich sie so über den Tag verteilen, Ahrtal zeigte mir jedoch, dass dies letzt- • als Protokoll dienen SSH oder Rsync.
dass nicht mehr Sicherungen starten als lich nichts mehr als ein frommer Wunsch Letztlich landete ich bei BorgBackup
vorgehalten werden. Anderenfalls könnte ist. Unwahrscheinlich, dass es mir gelingt, und Restic . Tatsächlich war Borg
es unter Umständen zu Datenverlusten in solch einer lebensbedrohlichen Situati- Backup meine erste Wahl. Restic probier-
kommen. Wie Sie in der Crontab erken- on kühlen Kopf zu bewahren und die te ich zunächst nur aus, um sicherzustel-
nen können, erzeugt Rsnapshot bei mir wichtigsten SSDs mitzunehmen. Hier len, dass ich bei BorgBackup richtig liege.
alle sechs Stunden zur Minute 42 ein musste also eine andere Lösung her. Beide Tools erfüllen meine Anforderun-
1
Backup. Abbildung zeigt, wie $snap gen, wie Verschlüsselung vor dem Up-
shot_root/ nach einem Monat aussieht. load, beide unterstützen geeignete Pro-
Qual der Wahl
tokolle, beide deduplizieren. Am Ende
Im März dieses Jahres besuchte ich auf machte jedoch Restic das Rennen, da es
Katastrophenschutz
den Chemnitzer Linux-Tagen den Vortrag mir in Sachen Look & Feel sympathischer
Im September 2021 kam es zu einem Er- „Verschlüsseltes Cloud-Backup mit Linux- war und zudem mehrere Systeme pro
eignis, mit dem in dieser Art wohl kaum Bordmitteln“ , gehalten von Bernd Repository sichern kann. Letzteres würde
jemand gerechnet hatte. Das Tief Bernd Strößenreuther. Er warf einige offene Fra- voraussichtlich deutlich bessere Ergeb-
brachte massive Niederschläge und löste gen in den Raum, denen ich so bislang nisse bei der Deduplizierung liefern.
damit eine der schwersten Überschwem- nicht allzu viel Beachtung geschenkt hat- Hoster, die die entsprechenden Proto-
mungskatastrophen aus, die Deutsch- te. Etwa (sinngemäß): „Wie kommt ihr an kolle anbieten, gibt es viele. Die persönli-
land je sah. Innerhalb weniger Stunden eure Daten, wenn sämtliche Password- che Suchmaschine des Vertrauens wird
wurden Menschen obdachlos und stan- Safes und 2FA-Devices verloren sind?“ bei den Begriffen „storage as a service
den plötzlich vor dem Nichts. Das gab mir zu denken. Vor allem aber sftp rsync“ sicher mehrere ausspucken,
Das Hochwasser, vor allem im Ahrtal, motivierte es mich, mein Offsite-Backup die ich hier nicht thematisieren will.
diente retrospektiv als Anlass für mich, zu in eines der vielen WebDAV-basierten Worauf ich aber definitiv hinweise, ist ein
überdenken, wie ich meine Daten sichern Cloud-Drives zu hinterfragen. wichtiger Punkt von Bernd Strößenreut-
will. Ich digitalisierte daraufhin tatsäch- Die im Vortrag erwähnte Lösung Go- her: Bitte bedenkt stets, dass im Fall der
lich einen großen Teil meiner wichtigen cryptfs mochte praktikabel sein, traf Fälle mit den eigenen Geräten obendrein
Dokumente. Sofern ich in der Lage wäre, aber nicht so richtig meinen Geschmack. kryptografische Schlüsselpaare verloren
das ein oder andere Medium zu retten, Deswegen begann ich in den darauffol- gehen. Wer seine Daten per Public Key
wäre ich mit einem gewissen Aufwand genden Tagen nach Tools zu recherchie- verschlüsselt, steht am Ende ohne USB-
Stick, FIDO2-Token, Smartphone oder
Notebook da.
Listing 4: Crontab Demzufolge beschloss ich, auf die er-
01 $$nonumber
wähnten starken Authentifizierungsme-
thoden zu verzichten. Stattdessen wählte
02
42 */6 * * * root /usr/bin/rsnapshot hourly
ich sämtliche Passwörter maximal kom-
03
7 1 * * * root /usr/bin/rsnapshot daily plex und druckte sie zusammen mit wei-
04
13 3 * * 1 root /usr/bin/rsnapshot weekly teren Informationen zum Restore-Pro-
zess zweifach aus. Die beiden Kuverts
05
35 4 1 * * root /usr/bin/rsnapshot monthly
Listing 6: Backup-Skript
Listing 5: Restic #!/bin/bash
$ sudo apt install restic source /usr/local/sbin/rstcenv.sh
$ restic ‑r sftp:user@host:/pfad/zum/repo init # Restic ausführen
enter password for new repository: ****************************** restic backup \
enter password again: ****************************** /home \
created restic repository e2f4317359 at sftp:user@host:/pfad/zum/repo /etc \
Please note that knowledge of your password is required to access the /root \
repository. /usr/local/bin \
Losing your password means that your data is irrecoverably lost. /usr/local/sbin
50 www.linux-magazin.de 08.2023
Admin-as-a-Service Sysadmin
08.2023 www.linux-magazin.de 51
© serezniy / 123RF.com
Wie schlechte Kubernetes-Qualität Admins zur Verzweiflung bringt
Seit Jahren haben die großen Hersteller denkbar, weil voll- oder paravirtualisierte gründeten Stiftung steht, ist längst eine
der Linux-Welt ein absolutes Lieblings- Systeme im Gegensatz zu Docker und feste Größe im Cloud-Umfeld. Red Hat
thema: Container, Container, Container. Konsorten viel mehr Ressourcen für den wie Suse haben tief in die Tasche gegrif-
Was einst als Bastellösung galt, hat eigenen Betrieb benötigen. fen, um fertige Kubernetes-Distributio-
durch die Pionierarbeit von Docker nicht Weil es mit Containern alleine aber nen entweder zu kaufen (Rancher bei
nur einen professionellen Rahmen be- nicht getan ist, feiert auch Kubernetes 1
Suse ) oder selbst zu entwickeln
kommen, sondern auch mächtig kom- seit langer Zeit einen wahren Höhenflug: 2
(OpenShift bei Red Hat ).
merziellen Aufwind. Etliche aktuelle De- Der Orchestrierer für Container, der einst Ganz gleich, welches Thema man seit-
ployment-Szenarien wären ohne Linux- bei Google entstand und mittlerweile her anspricht: Fast immer laufen die feil-
Container schon deshalb praktisch un- unter der Ägide einer eigens dafür ge- gebotenen Lösungen der Unternehmen
52 www.linux-magazin.de 08.2023
Kubernetes-Kritik Sysadmin
© Suse
was glänzt. Allerdings wäre die Laune
manches K8s-Administrators wohl eine
bessere, stieße man in Kubernetes nicht 1 Auch Suse will ein Stück des Kubernetes-Kuchens abhaben und hat sich dafür Rancher
regelmäßig auf lausige Codequalität und einverleibt. Das gilt als solide Deployment-Methode für Kubernetes-Cluster.
kaputte Funktionen. Da entsteht das all-
gemeine Gefühl, dass Wunsch und Wirk-
lichkeit bei der Lösung stark divergieren. nisch alles andere als trivial: Nicht um- lig für Fehler verschiedener Art, ignoriert
Nicht wenige Administratoren kehren sonst gilt der Bau verteilter Systeme als diesen Umstand aber konsequent. Bei
Kubernetes nach einer anfänglichen eine Königsdisziplin innerhalb der IT. vielen Fehlern, die Kubernetes-Adminis-
Evaluation schnell wieder den Rücken, Andere Lösungen haben kaum weni- tratoren heute plagen, handelt es sich
und das aus handfesten Gründen: Das ger holprige Wege hinter sich. Erinnert eigentlich um klassische Kinkerlitzchen,
Produkt leidet nicht nur an zum Teil haar- sei in diesem Zusammenhang etwa an die die Kubernetes-Entwickler sich aber
sträubenden Fehlern, sondern auch an das heutige Pacemaker, das sein Leben konsequent weigern zu beseitigen.
einem ausgesprochen komplexen Öko- einst als Heartbeat 2 bei Suse begann
system. Darin möchte jeder Anbieter ein und später von Red Hat mit viel Geld
Was ist Kubernetes?
kleines Stück vom großen Kuchen abbe- massiv ausgebaut wurde. In den An-
kommen und eine Nischenlösung für ei- fangstagen von Heartbeat 2 war es Zwar wird im Rahmen dieses Texts durch-
nen hochspezifischen Einsatzzweck in durchaus nicht ungewöhnlich, dass ein gehend von Kubernetes die Rede sein,
Geld verwandeln. mithilfe der Software konstruierter HA- doch fällt schon die Festlegung unerwar-
Der vorliegende Artikel wagt eine Be- Cluster durch Programmierfehler in der tet schwer, was genau Kubernetes
standsaufnahme und nennt einige der Software völlig anders agierte, als der eigentlich ist und was die Bezeichnung
gröberen Kubernetes-Probleme beim Administrator es erwartete. meint. Nicht wenige Kommentatoren der
Namen. Dabei geht es auch um die Ent- Red Hat wusste, dass ein zuverlässiger Szene schreiben nämlich Kubernetes,
wickler-Community hinter dem Produkt: Cluster-Manager für Linux eine schiere meinen damit aber die API sowie die zur
Die ist einerseits zwar riesig, hegt ande- Notwendigkeit ist und machte sich in Lösung gehörenden Basisdienste. Sie im-
rerseits aber auch zahlreiche Spezialinte- Person von Andrew Beekhof und mit Un- plizieren dabei, dass diese überhaupt nur
ressen. Dass das dem Code von Kuberne- terstützung der HA-Community daran, im Kontext einer kommerziellen Kuber-
tes an vielen Stellen erkennbar schadet, die Kuh vom Eis zu bringen. Dass viele netes-Distribution zum Einsatz kommen.
nimmt die K8s-Gemeinschaft dabei aller- Entwickler im Kubernetes-Dunstkreis Demnach gilt, dass Admins Kubernetes
dings billigend in Kauf. stattdessen die Nutzer ihrer Werkzeuge ausschließlich in Form von Produkten wie
als Dilettanten darstellen, die einfach mit OpenShift, Rancher, K3s oder anderen
den Gegebenheiten der Moderne nicht fertigen Lösungen konsumieren.
Klarstellung
zurechtkommen, wird dieser Text später Das ist Fluch und Segen zugleich:
Vor dem großen Rant auf den Container- noch thematisieren. Einerseits abstrahieren OpenShift und
Orchestrierer sei eine Einordnung der fol- Davon unabhängig kann man es Konsorten einige der hier beschriebenen
genden Vorwürfe jedoch gestattet. Ku- Kubernetes kaum zum Vorwurf machen, Probleme zwar tatsächlich weg, indem
bernetes ist ein verteiltes System, das die dass beim Umsetzen eines verteilten sie ab Werk mit entsprechenden Worka-
Zustände verschiedenster Ressourcen Systems derartiger Komplexität hier und rounds oder fertigen Konfigurationen
über die physischen Grenzen einzelner dort eben auch mal etwas schiefgeht. daherkommen. Andererseits erhöhen sie
Server hinweg konsistent verwalten und Kritik erlaubt ist aber durchaus an der die Komplexität einer Lösung aber durch
zugeteilte Aufgaben in diesem Rahmen Art und Weise, wie das Projekt sich orga- ihre eigene Funktionalität erheblich. Das
zuverlässig erledigen soll. Das ist tech- nisiert. Dadurch macht es sich erst anfäl- wiegt umso schwerer, als Kubernetes
08.2023 www.linux-magazin.de 53
Sysadmin Kubernetes-Kritik
54 www.linux-magazin.de 08.2023
Kubernetes-Kritik Sysadmin
nutze Kubernetes durchaus den SemVer- derholte Versprechen der Einfachheit drei nagelneuen Servern mit genügend
Standard, und tatsächlich kommt Kuber- von Lösungen wie Calico oder Flannel Wumms unter der Haube und Ubun-
netes in Versionen wie 1.24.0 daher. Al- rächt sich hier bitter. tu 22.04. Folgt man den diversen Anlei-
lerdings macht die genutzte Versions- Wäre die Reddit-Outage ein Verkehrs- tungen im Netz, um auf einem solchen
nummer per se eben noch keine Com unfall, würde ein Gericht den Parteien System ein Vanilla-Kubernetes auszurol-
pliance mit SemVer aus, und aus der am Ende vermutlich jeweils eine Teil- len, beobachtet man regelmäßig allerlei
Erfahrung heraus erwarten Administrato- schuld zusprechen. Dass Kubernetes es bemerkenswerte Effekte. So nutzt Kuber-
ren beim Sprung von v1.23 zu v1.24 ge- Administratoren so schwer macht, schon netes intern CoreDNS für die Namensauf-
rade keine Änderungen, die die Kompati- anhand der Versionsnummer fundamen- lösung. Funktioniert die nicht, lassen sich
bilität mit der Vorversion brechen. tale Änderungen zu identifizieren, müss- typische Anwendungen aus dem Kuber-
Dann, so heißt es weiter, hätte ein te aber eigentlich nicht sein. netes-Universum wie Istio gar nicht erst
Blick in das Changelog ja für Klarheit sor- nutzen, weil sie nicht starten.
gen können. Das stimmt grundsätzlich, Von zuverlässiger Funktionalität bei
Schlimmer geht immer
unterschlägt aber einen wichtigen Fak- CoreDNS war K8s in der Version 1.26, die
tor: Wer K8s im Gespann mit Lösungen Immerhin: Den Ausfall bei Reddit hätten bei der Entstehung dieses Artikels aktuell
wie Calico oder Flannel einsetzt, darf ei- die dortigen Administratoren durch sorg- war, jedenfalls weit entfernt. In vier von
gentlich erwarten, dass deren Hersteller fältige Changelog-Lektüre sowie einige zehn Fällen funktionierte nach dem Aus-
sich um solche Probleme kümmern oder vorhergehende Tests verhindern können. rollen von Kubernetes (jeweils nach der
zumindest eindeutige Aussagen bezüg- Das ist aber längst nicht bei allen Kuber- kompletten Neuinstallation der Systeme
lich der Kompatibilität mit bestimmten netes-Problemen der Fall, mit denen per Lifecycle-Management) CoreDNS in
Kubernetes-Versionen treffen. Regelmä- Administratoren es üblicherweise zu tun Kubernetes aus nicht nachvollziehbaren
ßig wissen Administratoren, die Calico bekommen, wie im Folgenden mehrere Gründen nicht. Dass ein Neustart der
und Co. nutzen, gar nicht im Detail, was Beispiele verdeutlichen. CoreDNS-Pods diese auf magische Weise
unter deren Hauben eigentlich passiert. Gegeben sei beispielsweise eine fri- zum Leben erweckte, ist da nur ein
Das fast schon gebetsmühlenartig wie- sche Laborumgebung, bestehend aus schwacher Trost, denn die Ursache für
© Vmware
3 Externe Zusatzprodukte erweitern Kubernetes zwar um Funktionen, drehen aber auch mächtig an der Kom-
plexitätsschraube und werden dadurch Teil des Problems. Unser Diagramm zeigt das beispielhaft für Calico.
08.2023 www.linux-magazin.de 55
Sysadmin Kubernetes-Kritik
das Problem war im Nachhinein nicht sieht er statt der in der Dokumentation Entwickler und ‑Fans auf Probleme re-
mehr herauszufinden. Vertrauenerwe- angepriesenen rückstandslosen Entfer- agieren, und andererseits die Erkenntnis,
ckend ist das nicht gerade. nung aller sich darin befindlichen Einträ- dass Kubernetes viele seiner aktuellen
Das gilt umso mehr, da die Kakofonie ge oft ein Potpourri aus Zombie-Ressour- Probleme gar nicht haben müsste.
zwischen Lösung und Admin sich für die cen. Die verhindern das Löschen eines Schließlich ist Kubernetes nicht die
nächsten Schritte hin zur Container- Namespaces nachhaltig und dauerhaft. erste und auch nicht die einzige Soft-
Plattform nahtlos fortsetzt. Fast schon Ebenso scheitert Kubernetes daran, sie ware, die sich mit den Tücken eines ver-
berühmt-berüchtigt sind die Inkonsis- zu entfernen. Dann helfen bloß noch kru- teilten Systems herumschlagen muss. Ein
tenzen in der Ressourcenverwaltung de Hacks auf der Kommandozeile, wie anderes, prominentes Softwareprojekt
von Kubernetes. Dazu muss man wissen, der aus Listing 1 für die K8s-Datenschutz- musste vor ein paar Jahren ganz ähnliche
dass es sich in der Kubernetes-Welt ein- lösung Kasten. Herausforderungen meistern wie die, vor
gebürgert hat, externe Software per Wem der gezeigte Kommandozeilen- denen K8s heute steht: OpenStack. Wer
Paketmanager (Helm) oder über fertige wust noch zu intuitiv ist, der findet im nun aber annimmt, man habe bei Kuber-
State-Dateien vorzunehmen. Letztere Netz an anderer Stelle den Hinweis, dem netes viel Wert auf den Erfahrungsschatz
gibt man dem Cluster per kubectl Cluster doch gleich per Curl und JSON- der OpenStack-Entwickler gelegt, sieht
apply mit auf den Weg. Template zu Leibe zu rücken, was dann sich spätestens nach der Lektüre ein-
Viele größere Softwareprojekte wie aber wirklich ganz sicher und verspro- schlägiger Mailing-Listen und ebenso
Rook, das Ceph durch Kubernetes hin- 4
chen funktioniere . Wer, um im vorhe- zahl- wie fruchtlosen Debatten bei Kon-
durch ausrollt, kommen mit entspre- rigen Beispiel zu bleiben, dachte, nach ferenzen wie der KubeCon eines Besse-
chend vielen State-Beschreibungen in der unbeliebten XML-Notation der Res- ren belehrt.
vielen einzelnen Dateien. Wendet der sourcen in Pacemaker könne es kaum Ein Großteil der Community rund um
Administrator diese auf den Cluster an noch schlimmer kommen, sieht sich hier Kubernetes hat in den OpenStack-Entwi-
und merkt, dass beim Deployment etwas eines Besseren belehrt. cklern stets einen Haufen von Idioten ge-
schiefgeht, hat er üblicherweise eine Admins, die selbstverständlich davon sehen, der für gegebene Probleme viel
klare Erwartungshaltung: Dass er näm- ausgehen, es vor und nach dem Abset- zu komplexe Lösungen erfand, statt je-
lich die bereits bestehenden Ressourcen zen eines Kommandos an einen Dienst weils den einfachsten Weg einzuschla-
löschen und den Prozess von vorn begin- mit einem konsistenten Zustand zu tun gen. Dabei übersehen die Kritiker, dass
nen kann. Das leuchtet theoretisch ein, zu haben, wackeln in der Regel spätes- etliche OpenStack-Komponenten es zu
funktioniert so in der Praxis allerdings tens jetzt mit den Ohren. Beginn der Entwicklung von OpenStack
regelmäßig nicht. durchaus mit der einfachsten Lösung
Ebenso wie das Deployment-Schema versucht und sich dabei eine blutige
Bräsige Überheblichkeit
selbst hat es sich im Kubernetes-Umfeld Nase geholt haben. Wie bei Pacemaker
eingebürgert, logisch zusammenhän- Um es zu wiederholen: Dass eine kom- hat man daraus bei OpenStack gelernt,
gende Ressourcen in Kubernetes-Name- plexe Lösung wie Kubernetes mit Fehlern die Software sukzessive verbessert, Bugs
spaces von anderen Ressourcen im sel- daherkommt, ist weder ungewöhnlich ausgeräumt und OpenStack in eine ver-
ben Cluster abzugrenzen. Greift der Ad- noch unerwartet. Den Blutdruck des Ad- lässliche Lösung für spezifische Einsatz-
ministrator nun aber zur Brechstange ministrators treibt einerseits aber die Art zwecke entwickelt. Beim Kubernetes-
und löscht den gesamten Namespace, und Weises in die Höhe, wie Kubernetes- Projekt will man von diesem Ansatz in
weiten Teilen allerdings nichts wissen.
Stattdessen sind die Reaktionen auf
Kritik und Fehlerberichte innerhalb der
Community heute fast schon vorherseh-
bar: Öffnet man den Bug-Tracker der Lö-
sung auf Github , finden sich dort
über 500 noch offene Einträge, die mit
needs-triage gekennzeichnet sind. Ein
großer Teil davon lässt sich gar nicht erst
sinnvoll reproduzieren.
Nicht selten erhalten verzweifelte Ad-
ministratoren durch die Blume die Aus-
kunft, es müsse wohl irgendetwas am lo-
kalen Setup defekt sein. Man solle das
Deployment – oder besser noch gleich
das ganze Kubernetes – noch einmal
4 Mit JSON-Snippets wie diesem sollen Administratoren ihrem neu ausrollen und sich wieder melden,
Kubernetes-Cluster zu Leibe rücken, wenn Ressourcen sich dort sollte sich das Problem dadurch nicht in
nicht mitsamt ihren Namespaces entfernen lassen. Wohlgefallen auflösen. Mit sinnvoller Re-
56 www.linux-magazin.de 08.2023
Kubernetes-Kritik Sysadmin
08.2023 www.linux-magazin.de 57
© Andriy Popov / 123RF.com
Umfrage unter EU-Mitgliedstaaten zur Chat-Kontrolle
Mehrere Vorschläge
Die Wunschliste der Mitgliedstaaten ent- det nicht zwischen verschiedenen Medi-
stand in einer Umfrage der schwedi- 1
entypen . Allerdings ist nie von Audio- Außerdem könne die Erkennung von
schen Ratspräsidentschaft, die 20 Länder dateien die Rede, sondern meist nur von Missbrauchsmaterial in Audiodateien
beantworteten . Zehn davon befür- Bildern, Videos und Texten. So heißt es in durch Faktoren wie Hintergrundgeräu-
worten ausdrücklich die Überwachung Artikel 13, dass die Meldungen von Miss- sche, schlechte Audioqualität und Ver-
von Audiokommunikation zur Bekämp- brauchsmaterial „alle Inhaltsdaten, ein- schlüsselung behindert werden. Rumäni-
fung von sexuellem Kindesmissbrauch. schließlich Bilder, Videos und Texte“ ent- en verweist dabei auf Verfahren wie Au-
Sechs Nationen, darunter Deutschland, halten müssen. Dabei beziehen sich Tex- dio-Fingerprinting oder Spracherken-
äußern Bedenken und lehnen das eher te vor allem auf sexuelle Anbahnungs- nung, um solches Material zu identifizie-
ab. Vier Mitgliedstaaten sind in dieser versuche (Grooming), die ebenfalls auf- ren. Darüber könne man maschinelles
Frage noch unentschieden. gedeckt werden sollen. Lernen einsetzen, um bekannte Audio-
Kroatien vertritt diese Position: „Die dateien zu erkennen.
Audiokommunikation kann für Groo- Rumänien zufolge könnten geschulte
Bilder, Videos und Texte
ming eingesetzt werden. Sie sollte in den menschliche Prüfer gekennzeichnete Au-
Der bisherige Vorschlag der EU-Kommis- CSAM-Vorschlag aufgenommen werden, diodateien kontrollieren und feststellen,
sion zur sogenannten CSAM-Verordnung wenn geeignete Instrumente zur Erken- ob sie Missbrauchsmaterial enthalten.
(Child Sexual Abuse Material) unterschei- nung von Grooming über Audiokommu- „Die Erkennung von CSA in Audiodateien
58 www.linux-magazin.de 08.2023
Recht Forum
„Eingriff in Grundrechte“
Gegner solcher Pläne wie die Niederlan-
de wenden ein, dass eine Überwachung
der Audiokommunikation „in keinem
© fizkes / 123RF.com
Verhältnis zum angestrebten Zweck ste-
hen würde“. Darüber hinaus werde sie
„im Falle von Ende-zu-Ende-verschlüssel-
ter Sprachkommunikation höchstwahr-
scheinlich auch Maßnahmen erfordern,
die mit der Rechtsprechung des Europäi- 1 In Messengern geteilte Medien sind Gegenstand der Chat-Kontrolle.
schen Gerichtshofs zur Vorratsdatenspei-
cherung unvereinbar sind“.
Nach Ansicht der Slowakei würde die Meinungen der Mitgliedstaaten weit aus- Belgien schlägt dagegen vor, das Aufbre-
Überwachung der Audiokommunikation einander. Die Ratspräsidentschaft will chen der Verschlüsselung in die Verant-
„den am schwersten wiegenden Eingriff wissen, ob in die CSAM-Verordnung ein wortung der Provider zu legen. „Das be-
in die Grundrechte der betroffenen Per- Passus aufgenommen werden soll, wie er deutet, dass ein Diensteanbieter in der
sonen und eine Ausnahme vom Grund- sich derzeit in Erwägungsgrund 25 der Lage sein sollte, seine eigene Verschlüs-
satz der Vertraulichkeit der Kommunika- Übergangsverordnung zum Kindesmiss- selung zu ’deaktivieren’, wenn eine Anfra-
tion darstellen“, wie er in der E-Privacy- brauch findet. Dort heißt es: „Keine ge einer Justizbehörde vorliegt.“ Sicher-
Richtlinie verankert sei. Anbieter seien Bestimmung dieser Verordnung sollte heitsexperten sind der Ansicht, dass eine
auch kaum in der Lage, eine Risikoein- daher so ausgelegt werden, dass sie die solche Möglichkeit effektiv die Ende-zu-
schätzung zu erstellen, da die Kommuni- Ende-zu-Ende-Verschlüsselung verbietet Ende-Verschlüsselung zerstören würde.
kation nicht überwacht werden dürfe. oder abschwächt.“
Ohnehin scheint unklar, welche Audio- Dagegen fordert Spanien offen: „Idea-
Sieben stumme Staaten
kommunikation gemeint ist. lerweise wäre es unserer Meinung nach
wünschenswert, die in der EU ansässigen Insgesamt befürwortet eine Mehrheit
Diensteanbieter gesetzlich daran zu hin- der Staaten eine ungeschwächte Ende-
Telefonate betroffen?
dern, eine Ende-zu-Ende-Verschlüsselung zu-Ende-Verschlüsselung, sodass ein ent-
So fragt Irland, ob mit den sogenannten einzusetzen.“ Die Alternative wäre eine sprechender Passus Eingang in die Ver-
interpersonellen Kommunikationsdiens- Transportverschlüsselung analog zur ordnung finden könnte. Sieben Mitglied-
ten auch nur nummernunabhängige E-Mail-Kommunikation, die der Anbieter staaten, darunter Frankreich, Österreich,
Dienste wie Whatsapp oder auch num- auf seinem Server durchsuchen könne. Schweden und Portugal, reichten keine
mernabhängige Sprachdienste gemeint Das sei allerdings „sehr umstritten“. Antworten ein. Somit lässt sich nicht ab-
sind. Zudem bleibe unklar, ob im Falle sehen, ob der Ministerrat die Audiokom-
von Whatsapp nur Sprachnachrichten munikation in seine Verhandlungsposi
Pro Verschlüsselung
oder auch Sprachanrufe gemeint seien. tion aufnehmen wird. Falls doch, dürfte
Der Kommissionsvorschlag verweist Die deutsche Regierung äußert in ihrer das den Widerstand gegen die gesamte
jedoch auf Artikel 2, Nummer 5 des Euro- Antwort „schwerwiegende Bedenken ge- Chat-Kontrolle noch verstärken. (uba) █
päischen Kodex für die elektronische gen die im Verordnungsvorschlag ent-
Kommunikation , der ausdrücklich haltenen Regelungen zu Aufdeckungs-
nicht zwischen nummernunabhängig anordnungen“. Ihr erscheint ein hohes Dateien zum Artikel
und ‑abhängig unterscheidet. Damit Maß an Datenschutz und Cybersicherheit herunterladen unter
könnten sich entsprechende Aufde- unerlässlich, einschließlich einer Ende- www.lm-online.de/dl/48722
ckungsanordnungen auch auf normale zu-Ende-Verschlüsselung in der elektro-
Telefongespräche erstrecken. nischen Kommunikation. Deutschland
halte es unter anderem für erforderlich,
Verschiedene Standpunkte im Entwurfstext festzuhalten, „dass keine Weitere Infos und
Technologien eingesetzt werden, die die interessante Links
Auch hinsichtlich des Schutzes von En- Verschlüsselung stören, schwächen, um- www.lm-online.de/qr/48722
de-zu-Ende-Verschlüsselung liegen die gehen oder verändern“, heißt es weiter.
08.2023 www.linux-magazin.de 59
Forum Bücher
Bücher über Machine Learning und C++ Das Buch behandelt einführend die
Grundideen des Machine Learning –
Tux liest
Klassifizierung und Regression – und
einige grundlegende Begriffe wie diskre-
te und kontinuierliche Daten, abhängige
und unabhängige Variable, Test- und
Trainingsdaten etc. Weiter geht es mit
dem nötigen Fundament aus Statistik:
Ein Buch führt reich bebildert in die Methoden des Machine Histogramme, Wahrscheinlichkeitsvertei-
lungen und Modelle kommen zur Spra-
Learning ein. Das zweite erläutert Best Practices für C++- che. Dann folgen konkrete Techniken, da-
runter die lineare Regression, das Gradi-
Programmierer. Jens-Christoph Brendel entenabstiegsverfahren und die logisti-
sche Regression. Daran schließt sich mit
Naive Bayes ein bekanntes Klassifikations-
verfahren an, dem noch Entscheidungs-
Bilder statt Worte bäume und Support-Vektor-Klassifika
toren folgen. Das Buch endet schließlich
Das Besondere an der vorliegenden Ein- die Erklärungen bei einer Grundidee an mit einer Vorstellung neuronaler Netze.
führung in das maschinelle Lernen ist die und hangeln sich dann weiter zu den De- Insgesamt liegt ein Werk vor, das sich aus-
Erklärmethode. Der Autor nutzt durch- tails. Auf diese Weise kann der Leser den gezeichnet für das Selbststudium eignet
gängig Comic-artige Bildchen, oft Dia- dargebotenen Stoff in leicht verdauli- und auf didaktisch geschickte Weise in
gramme, aber auch plakative Abbildun- chen Häppchen aufnehmen. Die Beispie- das maschinelle Lernen einführt. █
gen. Zwei Fantasiefiguren, Normalsaurus le sind instruktiv und ähneln sich über
und StatSquatch, äußern sich mittels weite Strecken, sodass der Leser an Be-
Sprechblasen. Alle Themenkomplexe kanntem anknüpfen kann. Kurze Zusam- Josh Starmer
gliedern sich in überschaubare Einheiten, menfassungen und FAQs festigen das Machine Learning
meist nicht länger als eine Seite. Dabei Gelernte. Die Methode funktioniert aus- visuell lernen
umfasst jede Einheit wiederum meist drei gezeichnet, wenn man sich an „Bäm!!!“- mitp-Verlag 2023
oder vier prägnante Punkte, zu denen je- Sprechblasen und ähnlichen kindlichen 300 Seiten, 35 Euro
weils eine Illustration gehört. Oft setzen Stilelementen nicht allzu sehr stört. ISBN: 978-3-7475-0071-2
60 www.linux-magazin.de 08.2023
LUKAS
VERONIKA
Games Group
E-Commerce
SciFi-Nerd
CosPlay-Nerd
JOHANNES
N-Zone
Nintendo-Nerd
MANUEL
PCGH
Notebook-Nerd
SASCHA
play5 | PC Games
MATTHIAS Fantasy-Nerd
PC Games
Video-Nerd
SANTI
PCGH
Video-Nerd
TANJA
62 www.linux-magazin.de 08.2023
KI-Serie Know-how
Eingabe
Maschinelles Lernen • Klassifikation • Clusterbildung • Optimierung
Regeln
(überwachtes Lernen) • Regression • Dimensions- • Handlungs-
Ausgabe
reduktion strategien
1 Transformation von Ein- in Ausgabedaten. 2 Die hauptsächlichen Kategorien beim maschinellen Lernen.
oder nicht? Bei der Regression sollen nomen Systemen und für die Planung schen Daten und der Entwicklung per
hingegen konkrete Werte vorhergesagt von Spielen zum Einsatz. sonalisierter Behandlungspläne. Durch
werden. Die Vorhersage von Aktienkur Die bisher genannten Methoden des die Analyse von medizinischen Bildern,
sen stellt beispielsweise ein Regressions maschinellen Lernens gehören zu den genetischen Daten und klinischen Infor
problem dar. prädiktiven Methoden. Sie erlauben, Vor mationen können Algorithmen helfen,
Allgemein ist es beim überwachten hersagen oder Aussagen über Daten zu Krankheiten frühzeitig zu erkennen und
Lernen wichtig, dass der Algorithmus aus treffen. Im Gegensatz dazu zielt generati die Behandlung zu optimieren.
den Trainingsdaten den allgemeinen ves maschinelles Lernen darauf ab, neue • Finanzwesen: Maschinelles Lernen
Zusammenhang zwischen den Features Daten zu erzeugen, die den Trainingsda wird im Finanzwesen eingesetzt, um Fi
und den Labels erlernt. ten ähneln. Anstatt eine bestimmte Vor nanzmärkte zu analysieren, Betrugsfälle
Unüberwachtes Lernen verzichtet auf hersage zu treffen, kann das Modell dann zu erkennen und Risikobewertungen zu
beschriftete Daten. Es liegen also nur neue, bisher ungesehene Daten generie erstellen. Algorithmen können große
Features vor, aber keine Labels. In diesem ren, die ähnliche Merkmale aufweisen. Mengen von Finanzdaten analysieren
Fall versucht der Algorithmus, Einsichten Diese Modelle werden oft in der Bild- und Muster aufspüren, die menschliche
über die Features selbst zu erlangen. und Textgenerierung eingesetzt. Analysten möglicherweise übersehen
Methoden des unüberwachten Lernens würden.
erkennen beispielsweise eigenständig Das sind nur einige wenige Beispiele für
ML-Anwendungen
Muster und Strukturen in den Daten, Anwendungen des maschinellen Ler
zum Beispiel durch Cluster-Bildung. Maschinelles Lernen kommt in zahlrei nens. Gerade das Aufkommen genera
Bei hochdimensionalen und komple chen Anwendungen zum Einsatz. Die tiver Methoden wird in naher Zukunft
xen Daten können Methoden des un Verwendungsgebiete sind praktisch un dazu führen, dass maschinelles Lernen
überwachten Lernens auch die Dimen begrenzt. Die folgende Aufzählung gibt immer mehr kreative Aufgaben unter
sionalität der Daten reduzieren und auf einen Überblick: stützt oder gar übernimmt.
diese Weise die weitere Verarbeitung • Bild- und Spracherkennung: Maschi
vereinfachen. Das unüberwachte Lernen nelles Lernen ermöglicht Computerpro
Fazit
eignet sich also gut für die Entdeckung grammen, Bilder zu identifizieren und
von verborgenen Mustern und das Er Sprache zu verstehen. Das umfasst Be Maschinelles Lernen ist eine revolutionä
kunden von Datensätzen. reiche wie Gesichtserkennung, automa re Technologie, die unser tägliches Leben
Neben dem überwachten und unüber tisches Übersetzen und Chatbots. Durch und verschiedene Branchen einschnei
wachten Lernen gibt es noch das verstär den Einsatz von neuronalen Netzwer dend verändert. Es ermöglicht Compu
kende Lernen, das sich grundsätzlich von ken und Deep Learning haben sich die tern, aus Daten zu lernen und Vorhersa
den beiden anderen Arten des maschi Leistungsfähigkeit und Genauigkeit gen zu treffen, ohne dass man sie dafür
nellen Lernens unterscheidet. Beim ver dieser Systeme erheblich verbessert. explizit programmieren muss.
stärkenden Lernen interagiert ein Algo • Empfehlungssysteme: Unternehmen Allerdings gibt es im Umgang mit ma
rithmus mit einer Umgebung und wird wie Netflix und Amazon nutzen maschi schinellem Lernen auch gewisse Heraus
für bestimmte Aktionen belohnt oder nelles Lernen, um personalisierte Emp forderungen. Die Qualität und Verfügbar
bestraft. Das Ziel besteht darin, eine opti fehlungen zu generieren, die auf den keit von Daten spielt eine entscheidende
male Handlungsstrategie zu entwickeln. individuellen Vorlieben und Verhaltens Rolle, da schlechte Daten zwangsläufig
Der Algorithmus lernt durch schlichtes weisen der Nutzer basieren. zu fehlerhaften Ergebnissen führen. Zu
Ausprobieren. Er optimiert dabei seine • Medizin und Gesundheitswesen: In dem müssen Entscheidungen von Algo
Strategie so, dass er möglichst viele Be der Medizin unterstützt maschinelles rithmen nachvollziehbar und erklärbar
lohnungen erhält. Verstärkendes Lernen Lernen Ärzte bei der Diagnostik, dem sein. Das gilt insbesondere bei ethisch
kommt häufig in der Robotik, bei auto Entdecken von Mustern in medizini sensiblen Anwendungen. (jcb) █
08.2023 www.linux-magazin.de 63
© liudmilachernetska / 123RF.com
Lücken stopfen
Es ist mühsam und zeitaufwendig, Sicherheitslücken im Auge zu behalten
und Systeme abzusichern. Der Vulnerability-Scanner von Buildroot hilft
beim Schwachstellenmanagement eines Eigenbau-Linux.
Eva-Katharina Kunst, Jürgen Quade
Kern-Technik Know-how
Linux-Kernel-Security
Eine Suche in der NVD des NIST nach „Linux hören Greg Kroah-Hartman, zweiter Mann ders kritischer Bugs können vor dem Publi-
Kernel“ förderte Ende April 2023 knapp 3500 hinter Linus Torvalds, sowie Sasha Levin als zieren über die ebenfalls private Mailing-Liste
seit 1999 aufgelaufene Einträge zutage. Die Maintainer der Long-Term-Support-Kernel- linux‑distros@vs.openwall.org disku-
Zahl erscheint angesichts des Zeitraums und Zweige (LTS). Dieses Linux Kernel Security tiert werden. Hier hören insbesondere Distri-
der Größe des Projekts nicht sonderlich dra- Team koordiniert sich über die private Mai- butoren wie Debian, Ubuntu und Fedora mit.
matisch. Es kommt mehr auf die Zeit an, in ling-Liste security@kernel.org. Wer eine Patches stehen bei Linux also erfreulich zeit-
der bekannt gewordene Schwachstellen ge- Sicherheitslücke findet, sollte sie an diese nah zur Verfügung. Für den Administrator
stopft werden. Um eine schnelle Reaktion zu Liste schicken, was übrigens keine CVE-Anga- bleibt die Schwierigkeit, ein geeignetes Upda-
gewährleisten, hat Linux geeignete Struktu- be erfordert. Die Gruppe verifiziert die te-Fenster zu finden. Der Austausch eines
ren etabliert. Rund um den Kernel beschäftigt Schwachstelle, arbeitet an Patches und sorgt Kernels bedeutet ja normalerweise den Still-
sich eine Gruppe erfahrener Entwicklerinnen dafür, dass diese in den Kernel-Code einflie- stand des kompletten Systems. Linux wäre
und Entwickler mit dem Thema Sicherheit. Zu ßen. Dazu stimmt sie sich mit den Maintai- allerdings nicht Linux, wenn man nicht auch
den bekanntesten Personen der Gruppe ge- nern der jeweiligen Subsysteme ab. Beson- einen laufenden Kernel patchen könnte .
08.2023 www.linux-magazin.de 65
Know-how Kern-Technik
66 www.linux-magazin.de 08.2023
Kern-Technik Know-how
CVSS
DB
NVD
CVE
Beschreibung
Score
DB
CVE
Lösung Web
CWE
Software Konfiguration
CWE
CPE
DB
CPE
DB
AUSGABE VERPASST?
Alle Artikel
6,99 € zzgl. Versandkosten
Eigenbau
Listing 1 fasst die notwendigen Arbeiten
zusammen, um sich mit überschaubarem
Aufwand selbst ein Bild von der Arbeits-
68 www.linux-magazin.de 08.2023
Kern-Technik Know-how
08.2023 www.linux-magazin.de 69
© Chris Up / Photocase.com
Programmverhalten mit LD_PRELOAD ändern Der oberste Eintrag linux‑vdso.so.1
gehört zum Kernel. Der untere (ld‑li‑
Bitte abbiegen!
nux‑x86.64.so.2) ist der Programmlader
selbst, der die benötigten Dateien lädt.
Die wichtigsten Standardfunktionen,
etwa für den Dateizugriff, Prozess- und
Thread-Steuerung und auch alle Low-Le-
vel-System-Call-Wrapper finden sich in
Linux-Programme nutzen zahlreiche von Bibliotheken bereit- libc.so.6. Programme, die die grafische
Oberfläche (also meist das X-Window-
gestellte Features. Mit ein wenig C-Code ersetzen Sie über die System X11) nutzen, laden zudem die
X11-Bibliothek libX11.so.6.
Variable LD_PRELOAD Bibliotheksfunktionen durch eigene und Eine der Dateien in der Bibliotheksliste
ist libc.so.6, eine GNU-C-Bibliothek .
ändern so das Programmverhalten. Hans-Georg Eßer Sie bringt zahlreiche häufig benötigte
Funktionen mit, darunter open(), read(),
write() für den Low-Level-Zugriff auf
Dateien, malloc() für die dynamische
Möchten Sie herausfinden, welche Da- zess und lädt die ausführbare Programm- Speicherverwaltung, printf() für die
teien ein Programm öffnet und welche datei in dessen Speicherbereich. Das ist formatierte Ausgabe von Daten und
Netzwerkverbindungen es aufbaut? Mit aber meist nicht alles: Programme nut- exit() zum Beenden des Programms.
einem Trick lassen sich Standardfunktio- zen in der Regel Bibliotheken, die dyna- Starten Sie ein grafisches Programm,
nen wie das Öffnen von Dateien oder das misch hinzugeladen werden. Welche da- kommen noch zahlreiche weitere Biblio-
Lauschen auf einem TCP-Port durch selbst von eine Applikation lädt, erfahren Sie theken hinzu. So listet der Aufruf von ldd
programmierte Versionen ersetzen, die 1
über das Kommando ldd . „Echte“ Bib- /usr/bin/gedit auf Ubuntu 22.04 bei-
nicht nur protokollieren, was die Anwen- 1
liotheken sind in Abbildung nur die spielsweise 80 Bibliotheken auf, die der
dung tut, sondern auf Wunsch sogar das Einträge libselinux.so.1 (Unterstüt- Gnome-Editor benötigt.
Verhalten verändern. Den Schlüssel dazu zung für die Sicherheitserweiterung SELi- Eine komplette Liste aller sogenannten
bietet die Variable LD_PRELOAD, die den nux), libc.so.6 (die Standard-C-Biblio- Symbole, die eine Bibliothek bereitstellt,
Linux-Programmlader beeinflusst. thek) und libpcre2‑8.so.0 (Funktionen, rufen Sie mit readelf ab. So zeigt der
Wenn Sie ein Programm starten, er- mit denen ein Programm reguläre Aus- Aufruf aus Listing 1 zum Beispiel die mit
zeugt der Linux-Kernel einen neuen Pro- drücke verarbeiten kann). über 3000 Einträgen sehr lange Liste der
70 www.linux-magazin.de 08.2023
LD_PRELOAD Know-how
Statisch gelinkt
Bei manchen Programmdateien listet
Ldd keine Bibliotheken auf, sondern gibt 1 Der Kommandozeilenaufruf ls nutzt nur einige wenige Bibliotheken.
die Fehlermeldung Das Programm ist
nicht dynamisch gelinkt aus. Solche Pro-
gramme startet Linux ohne das Laden bereits bekannte Standard-C-Bibliothek. Diese Flexibilität ermöglicht unter ande-
zusätzlicher Dateien. Wenn Sie ein C-Pro- Nur die dynamische Version des Pro- rem, verschiedene Versionen einer Biblio-
gramm mit Gcc übersetzen, erzeugen Sie gramms öffnet die beiden Dateien. Die thek zu installieren und dann für einzelne
über die Option ‑static eine solche sta- statische dagegen enthält schon alles an Anwendungen einzustellen, welche da-
tisch gelinkte Binärdatei. Code, was sie braucht. Unten im Bild fol- von sie verwenden. Am grundsätzlichen
2
Abbildung zeigt einige Experimente gen noch Testaufrufe der beiden Pro- Ablauf ändert sich dadurch nichts: Der
mit einem kleinen C-Programm. Oben gramme; sie arbeiten identisch. Loader prüft, welche Bibliotheken ein
sehen Sie den Quellcode. Das Programm Programm benötigt, sucht diese in den
gibt Hello world und – falls vorhanden – vorgesehenen Ordnern und lädt sie.
Eingriff
das erste Aufruf-Argument aus. Um die Ein besonderes Ladeverhalten erzielen
Funktion printf() aus der Standard Der Programmstart lässt sich unter Linux Sie mit der Variablen LD_PRELOAD: Hier
bibliothek zu nutzen, bindet der Code feintunen. Insbesondere können Sie fest- tragen Sie einzelne Bibliotheken ein, die
die Header-Datei stdio.h ein. legen, wo der Programmlader ld‑li‑ der Loader zusätzlich laden soll. Sie kön-
Die beiden Gcc-Aufrufe erzeugen eine nux‑x86‑64.so.2 nach Bibliotheken nen auch Funktionen enthalten, die be-
dynamisch (test‑printf‑dynamic) und sucht. Das klappt entweder über eine reits in einer der regulären Bibliotheken
eine statisch (test‑print‑static) gelink- feste Systemeinstellung in der Konfigura- vorkommen. Über diesen Mechanismus
te Version des ausführbaren Programms. tionsdatei /etc/ld.so.conf und weitere lässt sich beispielsweise eine einzelne
Beachten Sie den Größenunterschied: Dateien im Ordner /etc/ld.so.conf.d/ Bibliotheksfunktion durch eine selbst
Das dynamisch gelinkte Binary belegt (in diesen Dateien stehen Verzeichnisse, entwickelte Variante ersetzen.
etwa 16 KByte, während die statische Ver- die Bibliotheken enthalten) oder über die
sion etwa 900 KByte groß ist, weil sie Umgebungsvariable LD_LIBRARY_PATH:
Logger
auch die Bibliotheksfunktionen enthält. In ihr geben Sie zusätzliche Ordner mit
Die beiden Aufrufe von Strace prüfen, Bibliotheken an, in denen der Loader Als erstes, einfaches Beispiel für den Ein-
welche Dateien während des Starts und dann mit Priorität sucht. satz von LD_PRELOAD erstellen Sie eigene
der Ausführung des Programms geöffnet
werden. Die Datei /etc/ld.so.cache
enthält eine Liste aller Bibliotheken, die Listing 1: Symbole
bei Programmstarts automatisch gela-
$ readelf ‑Ws /lib/x86_64‑linux‑gnu/libc.so.6
den werden können, libc.so.6 ist die
Listing 2: openclose.c
01
#define _GNU_SOURCE 11 true_open = dlsym (RTLD_NEXT, "open");
02
#include <dlfcn.h> 12 int fd = true_open (pathname, flags, mode);
03
#include <unistd.h> 13 printf ("DEBUG: open(\"%s\") = %d\n", pathname,
fd);
04
#include <stdio.h>
14 return fd;
05
#include <stdarg.h>
15 }
06
16
07
int (*true_close)(int fd);
17
int close(int fd) {
08 i
nt (*true_open)(const char *pathname, int flags,
va_list mode); 18 true_close = dlsym (RTLD_NEXT, "close");
08.2023 www.linux-magazin.de 71
Know-how LD_PRELOAD
Varianten der System-Call-Wrapper Um die Funktionen dann auch aufrufen verantwortlichen Stelle zu suchen, oder
open() und close(). Listing 2 zeigt den zu können, definiert der Code in den Zei- er ist nicht verfügbar. Ersatzweise über-
kompletten Code der Datei openclose.c, len 7 und 8 zwei Variablen, die vom rich- prüfen Sie mit Strace oder Ltrace (siehe
die Sie mit dem Kommando aus Listing 3 tigen Funktionstyp sein müssen. Nach Kasten Strace und Ltrace), in welcher Rei-
in eine Bibliotheksdatei openclose.so den Zuweisungen in Zeile 11 und 18 ist henfolge das Programm zum Beispiel
übersetzen. Beide Funktionen geben mit es dann möglich, true_open() und versucht, Dateien zu öffnen oder Netz-
printf() eine Debug-Meldung auf der true_close() aufzurufen. werkverbindungen aufzubauen.
Konsole aus und erledigen ansonsten Ein beliebiges Programm lassen Sie Auf diese Weise stellt sich vielleicht he-
ihre Aufgaben, indem sie die regulären nun mit diesen veränderten Dateizu- raus, dass ein Programm in einer globa-
Versionen von open() und close() auf- griffsfunktionen laufen, indem Sie dem len Konfigurationsdatei Informationen
rufen. Das gelingt über einen Trick. Programmaufruf die Variablenzuweisung findet, mit denen es nicht zurecht-
Die Funktion dlsym() findet Biblio- LD_PRELOAD=Pfad/zur/Bibliothek vor- kommt. Sie möchten aber die globale
theksfunktionen über deren Namen. Dar- anstellen, wobei Sie den Pfad absolut an- Datei nicht verändern, weil andere An-
um lautet der zweite Aufrufparameter in geben müssen (Listing 4). wendungen auch darauf zugreifen und
Zeile 11 und Zeile 18 "open" respektive diese Informationen benötigen.
"close". Das würde eigentlich Zeiger auf Hier hilft es, exklusiv für das problema-
Verhalten anpassen
die hier implementierten Versionen zu- tische Programm den Zugriff auf eine
rückliefern, also nicht weiterhelfen. Über Typisch für den Einsatz von LD_PRELOAD andere Datei umzubiegen, die Sie mit
den Parameter RTLD_NEXT lässt sich aber ist das folgende Szenario: Sie beobach- passendem Inhalt füllen, sodass das Pro-
jeweils der erste Treffer überspringen. ten in einer Ihrer Anwendungen ein un- gramm korrekt arbeitet. Dazu passen Sie
Die fortgesetzte Suche nach den Funk erwünschtes Verhalten, das Sie ändern die Funktion open() so an, dass sie jeden
tionsnamen findet dann die Implemen- möchten. Der Quellcode ist aber zu kom- Versuch, eine bestimmte Datei zu öffnen,
tierungen in der Standardbibliothek. plex, um dort nach der für das Problem einfach mit dem Öffnen der Alternativ-
datei quittiert. Listing 6 zeigt, wie Sie alle
Versuche, die Datei /etc/fstab zu öff-
Listing 3: openclose.c übersetzen nen, auf /tmp/fstab.test umbiegen.
$ gcc openclose.c ‑o openclose.so ‑fPIC ‑shared ‑ldl
Die neue Fassung von open() erzeugt
zum angegebenen Dateinamen zu-
nächst mit realpath() eine absolute
Pfadangabe. open() lässt sich auch mit
relativen Pfaden aufrufen, die je nach
Arbeitsverzeichnis dann sehr unter-
schiedlich aussehen können. Das Um-
wandeln stellt sicher, dass nur ein einzi-
ger Pfad zu prüfen ist. Die Funktion
strncmp() vergleicht den Pfad dann mit
einem Suchbegriff (in unserem Beispiel:
/etc/fstab) und ersetzt ihn bei einem
Treffer durch den Namen der alternati-
ven Datei (/tmp/fstab.test).
Danach geht es wie gewohnt weiter,
true_open() öffnet die Datei. Der Aufruf
von free() am Ende ist notwendig, weil
longpath() Speicher fürs Ablegen der
Pfadangabe reserviert hat. Den sollte
Listing 4: Variablenzuweisung
$ cat test.txt
Hello
$ LD_PRELOAD=$PWD/openclose.so \
cat test.txt
DEBUG: open("test.txt") = 3
Hello
2 Da sie alle notwendigen Bibliotheken selbst mitbringen, fallen sta- DEBUG: Closing fd = 3
tisch gelinkte Binaries deutlich größer aus als dynamisch gelinkte.
72 www.linux-magazin.de 08.2023
LD_PRELOAD Know-how
man wieder freigeben, bevor man die Zugriffsverbot ENOENT steht für „Datei oder Verzeichnis
Funktion verlässt. Auch hier übernimmt nicht gefunden“. Die Definitionen für
das Kompilieren wieder ein Einzeiler (Lis- Statt den Dateizugriff umzubiegen, kann Fehlercodes finden Sie in errno‑base.h
ting 7, erste Zeile). die Problemlösung auch darin liegen, und errno.h im Ordner /usr/include/
Wenn Sie jetzt mit dem Aufruf aus der den Zugriff komplett zu verbieten. Dazu asm‑generic/, sodass Sie auch andere
zweiten Zeile eine Datei erzeugen und brechen Sie in bestimmten Fällen ohne Codes auswählen können.
mit Cat und der über LD_PRELOAD akti- Aufruf der Originalfunktion ab, setzen Wenn Sie die Zugriffssperre mit ande-
vierten Bibliothek auf /etc/fstab zugrei- die globale Fehlervariable errno und ge- ren Programmen testen, dann fällt Ihnen
fen, öffnen Sie stattdessen die in /tmp er- ben den Exit-Code ‑1 zurück. vielleicht auf, dass einige Editoren wie
stellte Datei (letzte Zeile). Listing 8 zeigt den Code, über den Vim, Mcedit oder Nano ebenfalls am Zu-
open() beim Zugriff auf die Datei /etc/ griff gehindert werden, Gedit aber die
fstab mit dem Fehlercode ENOENT und Datei öffnen kann. Eine Analyse mit
Strace und Ltrace dem Exit-Code ‑1 abbricht. Der Versuch, Strace zeigt, dass dieser Editor Dateien
die Datei mit der Filesystem-Tabelle zu nicht mit open() öffnet, sondern mit
Mit den Kommandozeilentools Strace und
öffnen, führt dann gewünscht zum Pro- openat. Dafür gilt es, eine alternative Im-
Ltrace aus den meist vorinstallierten Pake-
grammabbruch (Listing 9). plementierung bereitzustellen.
ten strace und ltrace überwachen Sie ei-
nen Prozess bei der Ausführung und lassen
dabei bestimmte Ereignisse protokollieren.
Listing 5: Strace und Ltrace
Strace kümmert sich um System Calls,
also Aufforderungen an den Linux-Kernel, $ strace ‑o prog.log ‑e trace=open,openat,close prog
eine Kernel-Aufgabe für den Prozess zu er- $ ltrace ‑x open+openat+close prog
ledigen: Dateien öffnen, daraus lesen, Da-
teien schließen.
Um sämtliche System Calls eines Pro- Listing 6: openother.c
gramms prog zu protokollieren, starten
#define _GNU_SOURCE
Sie es mit strace ‑o prog.log prog
und eventuellen Aufrufparametern für #include <dlfcn.h>
prog. Das Protokoll landet dann in prog. #include <stdio.h>
log. Die so erstellte Liste gestaltet sich #include <limits.h>
aber sehr unübersichtlich, weil ein typi- #include <stdlib.h>
sches Programm in kurzer Zeit sehr viele
#include <string.h>
System Calls ausführt. Besser ist es, nur
#define SEARCH_PATH "/etc/fstab"
bestimmte Aufrufe zu loggen. Dafür gibt es
die Option ‑e trace=. Mit dem Aufruf aus #define REPLACE_PATH "/tmp/fstab.test"
der ersten Zeile von Listing 5 sehen Sie
beispielsweise nur die Aufrufe der System int (*true_open)(const char *pathname, int flags, va_list mode);
Calls open, openat und close.
Lassen Sie den Schalter ‑o weg, erscheint int open (const char *pathname, int flags, va_list mode) {
die Ausgabe im Terminal. Das ist jedoch true_open = dlsym (RTLD_NEXT, "open");
nur bei Programmen mit wenig eigenen
char *longpath = realpath (pathname, NULL);
Ausgaben oder bei grafischen Anwendun-
gen sinnvoll, weil sonst die Ausgaben des if (!strncmp (longpath, SEARCH_PATH, PATH_MAX))
Programms und die von Strace gemischt pathname = REPLACE_PATH;
erscheinen. Eine ausführlichere Bespre- int fd = true_open (pathname, flags, mode);
chung der Möglichkeiten von Strace finden free (longpath);
Sie in einem älteren Artikel . return fd;
Ltrace leistet für Bibliotheksaufrufe, }
was Strace für System Calls tut: So zeigt
etwa der Aufruf aus der zweiten Zeile von
Listing 5 alle Funktionsaufrufe von
open(), openat() und close() an. Die Listing 7: Tests
Informationen ähneln jenen von Strace, $ gcc openother.c ‑o openother.so ‑fPIC ‑shared ‑ldl
aber hier geht es um Bibliotheksfunktio- $ echo "Das ist nicht /etc/fstab" > /tmp/fstab.test
nen wie open(), die gleichnamige System $ LD_PRELOAD=$PWD/openother.so cat /etc/fstab
Calls (open, ohne Klammern) aufrufen. Das ist nicht /etc/fstab
08.2023 www.linux-magazin.de 73
Know-how LD_PRELOAD
Mehr Beispiele
Einige weitere mögliche Anwendungen
finden Sie auf der Github-Seite Awesome
LD_PRELOAD . Mit Faketime gaukeln
Sie Prozessen beispielsweise eine abwei-
chende Systemzeit und damit insbeson-
3
dere ein anderes Datum vor . Das
erweist sich etwa als nützlich, wenn Sie
ein Programm starten möchten, dessen
Nutzungslizenz abgelaufen ist.
Die Änderung gilt dabei nur für Pro
zesse, die von Faketime gestartet wer-
den. Das Tool lädt über LD_PRELOAD eine
Bibliothek, die verschiedene Funktionen
austauscht, darunter time(), ftime()
und gettimeofday().
Die Bibliothek Stderred (der Name
setzt sich aus der Bezeichnung stderr für
3 Dank Faketime ist es auf der rechten Uhr schon 2,5 Stunden später als auf der linken. die Standardfehlerausgabe und der Far-
be „red“ zusammen) färbt im Terminal
alle Ausgaben, die ein Prozess über die
Listing 8: dontopen.c Standardfehlerausgabe erzeugt, rot ein.
#define _GNU_SOURCE
So lassen sich Fehlermeldungen leicht
von anderen Ausgaben unterscheiden.
#include <dlfcn.h>
Fsatrace beobachtet Dateizugriffe und
#include <stdio.h> erkennt dabei neben Lese- und Schreib-
#include <limits.h> zugriffen auch Verschieben, Löschen und
#include <stdlib.h> Statusabfragen. Dasselbe Verhalten lässt
#include <string.h> sich aber alternativ auch mit Strace prob-
lemlos erreichen.
#include <errno.h>
74 www.linux-magazin.de 08.2023
© Oleksandr Lutsenko / 123RF.com
Sicherheitsforscher von Doctor Web
entdeckten kürzlich eine neue Android-
Spyware , die Informationen über ge-
speicherte Dateien sammelt und an ent-
fernte Angreifer überträgt. Zudem kann
die Spyware den Inhalt des Zwischen-
speichers (Clipboard) modifizieren oder
auf einen Remote-Server hochladen. Das
ist besonders kritisch, weil dieser Spei-
cher beispielsweise Passwörter oder Kre-
ditkarteninformationen enthalten kann.
Doctor Web hat die Spyware auf den Na-
men Android.Spy.SpinOk getauft.
Die Spyware ist als harmloses Software
Development Kit (SDK) für das Marketing
getarnt. Entwickler können das SDK in
verschiedene Arten von Apps oder Spie-
len integrieren, einschließlich solcher,
die auf Google Play erhältlich sind. Im
Hintergrund führt das SDK eine Reihe
schädlicher Aktivitäten aus, von denen
weder der Benutzer noch der Entwickler
etwas mitbekommen.
Nach der Initialisierung verbindet sich
das SDK zunächst mit einem Command- Android-Spyware als SDK getarnt
and-Control-Server (CC). Die aktuelle Ad-
Gut getarnt
resse des CC-Servers erhält das SDK über
eine Anfrage an https://d3hdbjtb1686tn.
cloudfront.net/gpsdk.html. Die Antwort
auf diesen Request enthält im X-Origin-
Header dann die aktuelle Adresse eines
aktiven CC-Servers wie beispielsweise
https://s.hisp.in. Eine neue Android-Spyware hat sich in zahlreichen Apps des
Anschließend sendet das SDK über die
Anfrage https://s.hisp.in/v1/spin/init eine Google Play Store eingenistet und lässt Angreifer Dateien des
große Menge technischer Informationen
über das infizierte Gerät an den CC-Ser- Android-Geräts auslesen. Mark Vogelsberger
ver. Das umfasst Daten von Sensoren wie
dem Gyroskop oder dem Magnetometer,
die helfen können, eine Emulatorumge- Zugriff auf die Methoden in den Klassen Das Aufrufen dieser Methoden ermög-
bung zu erkennen. Damit wollen die Ent- com.spin.ok.gp.web.BaseJsInterface licht es dem Angreifer, vertrauliche Infor-
wickler des Spyware-SDK offenbar aus- und com.spin.ok.gp.code. Dadurch mationen und Dateien vom Gerät des
schließen, dass Sicherheitsforscher den kann das Trojaner-SDK in den geladenen Nutzers zu erhalten.
Trojaner in einem geschützten Environ- Webseiten eine Reihe von sicherheitskri- Die Spezialisten von Doctor Web fan-
ment genauer analysieren können. tische Methoden ausführen, um den das Trojaner-SDK und mehrere Vari-
Des Weiteren erhält das schädliche • eine Liste der Dateien in bestimmten anten davon in einer Reihe von via Goo-
SDK vom CC-Server eine Liste von URLs, Verzeichnissen zu erhalten (Methode gle Play ausgelieferten Apps. Einige von
die es dann in Webview öffnet, um Wer- listFiles()), ihnen enthalten bis heute schädliche
bebanner anzuzeigen. Zu diesem Web- • Dateien zu lesen (Methode getFile- SDKs, andere waren nur in bestimmten
view fügt das SDK ein Javascript-Inter- Content()), Versionen betroffen oder wurden aus
face hinzu. Diese Schnittstelle erlaubt • die Präsenz einer bestimmten Datei dem Katalog entfernt. Insgesamt wurde
oder eines Verzeichnisses zu überprü- die Spyware in 101 Apps mit mindestens
fen (Methode fileExist()), 400 Millionen Downloads entdeckt.
Weitere Infos und • den Zwischenspeicherinhalt zu kopie- Betroffen sind unter anderem die fol-
interessante Links ren (Methode readClipboard()) und genden Apps: Noizz, Zapya, VFly, MVBit,
www.lm-online.de/qr/48708 • den Zwischenspeicherinhalt zu verän- Biugo, Crazy Drop, Cashzine, FizzoNovel,
dern (Methode writeClipboard()). CashEM und Tick. (jcb) █
08.2023 www.linux-magazin.de 75
© Fisher Photostudio / 123RF.com
Kaum ein Entwickler schreibt den kom- die Paketbeschreibung, zweitens die
pletten Quelltext einer Anwendung. Fer- Bibliotheksdatei. Die Paketbeschreibung
tige Bibliotheken für Logging, Daten- enthält neben dem Namen und der Ver-
bankzugriff oder einen Geometrie-Kernel sion der bereitgestellten Bibliothek eine
beschleunigen die Lösungsentwicklung. Aufzählung der weiteren benötigten
Die Autoren Das setzt voraus, dass Compiler und Lin- Bibliotheken. Die Bibliotheken selbst lie-
ker auf die Header-Dateien und DLLs der gen abhängig von der genutzten Spra-
Paul Büchner ist Entwickler mit Schwer-
direkt oder indirekt verwendeten Biblio- che zum Beispiel als Java-Archiv, C#-DLL
punkt auf Web- und CAD-Software. Carsten
theken zugreifen können. Werkzeuge oder Javascript-Datei vor. Beide Datei
Zerbst erstellt Software für Ingenieure vom
wie Maven für Java oder Nuget für C# lö- typen werden in der Regel auf zentralen
einfachen Konverter bis hin zur unterneh-
sen die Aufgabe sehr elegant: Sie laden Servern wie Maven Central oder Nu-
menskritischen Integrationslösung. Er
beim Bauen die angegebenen Bibliothe- get.org zum Download bereitgestellt.
sucht für sein Team noch Verstärkung für
ken aus dem Internet und lösen ihre Zur eigenen Anwendung wiederum
abwechslungsreiche Tätigkeiten mit Java,
transitiven Abhängigkeiten auf. gehört eine Paketbeschreibung, die die
C# oder C++ in Hamburg und bietet The-
Solche Paketmanager verwenden dazu benötigten Bibliotheken aufzählt. Der
men für Bachelor- und Master-Arbeiten an.
zwei verschiedene Dateitypen: erstens Paketmanager lädt dann vor dem Kompi-
76 www.linux-magazin.de 08.2023
Vcpkg Programmieren
Projekt
bauen
1 Auf den ersten Blick aufwendig, aber letztlich hocheffizient: Die internen Schritte zum Bauen von Bibliotheken in Vcpkg.
lieren die darin angeforderten Paketbe- und der Bibliotheken bereitstellen und Start liest der Paketmanager das Manifest
schreibungen und Bibliotheksdateien gegen Spyware sichern zu müssen. des Projekts, ermittelt die vom Projekt be-
vom zentralen Server. Er kümmert sich 1
Abbildung stellt den Ablauf hinter nötigten Abhängigkeiten und sucht sie
um das Auflösen transitiver Abhängig- den Kulissen bei Vcpkg dar. Nach dem im Cache. Steht eine Abhängigkeit noch
keiten, bevor der Übersetzungsvorgang nicht bereit, liest er deren Manifest aus
unter Verwendung der nun lokal vorlie- der Registry und lädt die Projektquellen
genden Bibliotheksdatei startet. Listing 1: Manifest-Datei für Fmt herunter. Anschließend baut er die Biblio-
{
thek und speichert sie im Cache. Nach-
dem das für alle direkten und indirekten
Eigene Wege "name": "fmt",
Abhängigkeiten erfolgt ist, kann das Pro-
Im C++-Umfeld erfolgte die Verwaltung "version": "9.1.0", jekt selbst gebaut werden.
von Bibliotheken und deren Abhängig- "port‑version": 1, Bezüglich des Caches gibt es zwei
keiten meist manuell, bis sich in den letz- "description": "Formatting Optionen: Der Classic-Modus verwendet
ten Jahren auch hier Lösungen etablie- library for C++. ... ", einen zentralen Ablageort für alle Projek-
ren konnten. Eine davon ist Vcpkg , "homepage": "https://GitHub.com/ te, im Manifest-Mode gibt es einen ge-
eine bei Microsoft entwickelte Open- fmtlib/fmt", sonderten Ablageort für jedes Projekt.
Source-Lösung, die unter der MIT License Um Konflikte zwischen den Abhängig-
"license": "MIT",
auf Github zur Verfügung steht . Sie keiten verschiedener Projekte zu vermei-
"dependencies": [
funktioniert als eigenständiges Werk- den, empfiehlt sich in der Regel die Ver-
zeug, lässt sich aber problemlos auch in { wendung des Manifest-Modus.
gängige Build-Systeme wie Cmake oder "name": "vcpkg‑cmake", Das Manifest einer Bibliothek besteht
Msbuild integrieren. "host": true mindestens aus einer Datei namens
Vcpkg baut die Libraries auf dem Ent- vcpkg.json. Listing 1 zeigt ein Beispiel
},
wicklungsrechner aus den Quellen. für die Fmt-Library . Diese Datei ent-
{
Grund dafür ist die Vielzahl an Plattfor- hält neben dem Namen der Bibliothek
men und Compilern. Sie macht es "name": "vcpkg‑cmake‑config", vor allem eine Aufzählung der benötig-
schwierig, fertig kompilierte Bibliotheken "host": true ten Abhängigkeiten. Sowohl die Gültig-
für alle Kombinationen zentral vorzuhal- } keit als auch die Abhängigkeiten der Bib-
ten. Zudem umgeht man so das Prob- ] liothek lassen sich bei Bedarf auf be-
lem, einen jederzeit verfügbaren Server stimmte Plattformen einschränken. Kom-
}
zum Download der Paketbeschreibung plexere Fälle, wie die Notwendigkeit an-
08.2023 www.linux-magazin.de 77
Programmieren Vcpkg
derer Repositories zum Auflösen von Ab- es die Vcpkg-Toolchain zum Laden und mandozeilenoptionen und zum elegan-
hängigkeiten, erzwingen zusätzliche In- Kompilieren der benötigten Bibliotheken ten Formatieren von Zeichenketten.
formationen in der optionalen Datei nutzt. Wie Zeile 6 demonstriert, müssen
vcpkg‑configuration.json. In Listing 2 Sie dabei die entsprechende Cmake-Op-
Paketsammlung
finden Sie ein Beispiel für ein zugehöri- tion setzen. Dasselbe gilt analog auch
ges Cmake-File. bei der Verwendung einer IDE. Abbil- Auf der Webseite von Vcpkg findet sich
2
dung zeigt den entsprechenden Ein- unter Packages eine Suchfunktion, um
trag für Clion. Danach heißt es beim ers- die richtigen Namen für die Paketbe-
Schritt für Schritt
ten Mal warten, denn nun löst Vcpkg die schreibungseinträge zu finden. Unter
Die Verwendung des Paketmanagers für vom Beispielprogramm angeforderten den gut 2000 Bibliotheken sollte sich für
eigene Programme gestaltet sich ver- Abhängigkeiten in der Registry auf, lädt die meisten Aufgaben eine Lösung fin-
gleichsweise einfach. Auf der Github-Sei- deren Quellen herunter und kompiliert den lassen. Alternativ suchen Sie die
te von Vcpkg findet sich ein komplet- sie. Bei umfangreichen Dependencies Bibliotheken über den Kommandozeilen-
tes Beispiel. Die Schritte zum Kompilieren nimmt das – abhängig von der Rechen- aufruf vcpkg search.
auf der Kommandozeile fasst Listing 3 leistung des Systems – unter Umständen Nach dem Kompilieren der benötigten
zusammen. Die Kommandos aus den ers- einige Zeit in Anspruch. Bibliotheken können Sie im nächsten
ten beiden Zeilen laden Vcpkg und das Als Lohn der Mühe finden sich an- Schritt Ihr Programm mit Cmake kompi-
Beispielprogramm von Github. Um den schließend im Cache-Verzeichnis die lieren und gegen die eben erstellten
Paketmanager vor der ersten Verwen- Header-Dateien sowie die kompilierten Bibliotheken linken (Listing 3, Zeile 7).
dung zu initialisieren, wechseln Sie in Binaries der angeforderten Bibliotheken. Das erfordert in der Cmake-Datei (Lis-
dessen Verzeichnis und rufen das Skript Die benötigten Bibliotheken führt die Pa- ting 2) keinerlei Änderungen gegenüber
bootstrap‑vcpkg.sh auf (Zeile 3 und 4). ketbeschreibung des Programms auf. Im einer Version für lokal installierte Libra-
Anschließend rufen Sie im Ordner des Beispiel aus Listing 4 handelt es sich um ries – vorausgesetzt, die Bibliotheken las-
Beispielprogramms Cmake so auf, dass je eine Library zur Behandlung von Kom- sen sich mit Cmake finden.
01
$ git clone https://github.com/skfcz/vcpkgBeispiel.git {
02
$ git clone https://github.com/Microsoft/vcpkg.git "name": "boost‑program‑options"
03
$ cd vcpkgBeispiel },
04
$ sh vcpkg/bootstrap‑vcpkg.sh {
06 $
cmake ‑B build ‑S . ‑DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/ }
buildsystems/vcpkg.cmake ]
07
$ cmake ‑‑build build/ build/vcpkg‑example ‑‑option World }
78 www.linux-magazin.de 08.2023
Vcpkg Programmieren
oder DEBs einer sehr großen Bibliothek elle Bibliothek nutzen müssen, können ries in das Setup mit Vcpkg integrieren
wie OpenCascade ist in ein bis zwei Mi- Sie trotzdem von Vcpkg profitieren. In lassen. Von daher lohnt es sich für alle
nuten erledigt, das Kompilieren dauert den Microsoft-Developer-Blogs erzählt C- und C++-Entwickler, einen Blick auf
eher eine gute halbe Stunde. Nach dem Augustin Popa , wie sich solche Libra- dieses Werkzeug zu werfen. (jlu) █
erstmaligen Übersetzen der Abhängig-
keiten gibt es jedoch keinen Zeitunter-
schied, und als Belohnung winkt ein
plattformunabhängiges Build-System.
Das funktioniert nicht nur lokal: Pratik
Chougule hat ein Projekt-Setup für das
Kompilieren auf Jenkins bereitgestellt,
mit Github-Actions lässt sich Vcpkg auch
zum Bauen auf Github nutzen. Selbst
wenn Sie die eine oder andere kommerzi-
Abo-Vorteile
33%
IN
Rabatt
TSCHE
5 EURO
-GU Günstiger als am Kiosk
Versandkostenfrei
bequem per Post
SICHERN SIE SICH JETZT IHR GESCHENK! Pünktlich und aktuell
EIN AMAZON-GUTSCHEIN ÜBER 5,00 € Keine Ausgabe verpassen
Dr. Drahtlos
Als Terminal-UI kommt die Library
Tview zum Einsatz, die auch Projekte wie
Kubernetes für ihre Kommandozeilen
werkzeuge verwenden. Mit einigen Zei
len Code schaltet Tview das Terminal in
den Grafikmodus und zeigt Elemente
Wieso funktioniert das WLAN schon wieder nicht – was ist wie Tabellen oder Formulare im Retro-
1
Look Weiß auf Schwarz an . Tastatur
da los? Statt immer dieselben Schritte zur Diagnose einzu- eingaben nimmt Tview im Raw-Modus
entgegen, und Applikationen können Sie
tippen, schreibt Mike Schilli ein Go-Tool, das das drahtlose zum Steuern der Oberfläche nutzen.
Von der Kommandozeile aufgerufen,
Netzwerk auf Herz und Nieren prüft und hilft, die Ursache startet das vorgestellte Go-Programm
wifi vier Tests gleichzeitig und zeigt die
einzukreisen. Mike Schilli Ergebnisse in einer Tabelle an. Nach je
weils 10 Sekunden führt es die Tests er
neut aus und gibt so dynamisch wieder,
Kaum im von Airbnb vermittelten Ur was sich im Netzwerk ändert. Tickt alles
laubsresort angekommen, stellt sich he wie gewünscht, zeigt das Tool die Mess
raus, dass das WLAN nicht funktioniert. 1
ergebnisse an . Schlagen hingegen
Woran liegt es? Weist der DHCP-Server Tests fehl, liefert es die entsprechenden
Der Autor des Routers dem Laptop keine IP-Adres 2
Fehlermeldungen an . Ein Druck auf
se zu? Liegt es am DNS? Ist nur der [Strg]+[C] beendet den Reigen, schaltet
Michael Schilli arbeitet als Software
Durchsatz so mies, dass alles hängt? das Terminal in den Normalmodus und
Engineer in der San Francisco Bay Area in
All das lässt sich durch diverse Kom springt zurück in die Shell.
Kalifornien. In seiner Kolumne forscht er
mandozeilen-Tools in Erfahrung bringen,
seit 1997 jeden Monat nach praktischen
aber es ist ermüdend und nervig, das je
Anwendungen verschiedener Programmier- Parallel testen
des Mal zu wiederholen. Wie wäre es mit
sprachen. Unter mschilli@perlmeister.com
einem Tool, das die einzelnen Schritte in Der ersten beiden Tests des Tools schi
beantwortet er gern Ihre Fragen.
regelmäßigen Abständen wieder und cken Ping-Requests an den Google-Ser
80 www.linux-magazin.de 08.2023
Snapshot Programmieren
Listing 1: clock‑main.go
01
package main 10 ch := clock() 18 })
02
import ( 11 go func() { 19 }
03 "fmt" 12 for { 20 }
04 "github.com/rivo/tview" 13 select { 21 }()
05 ) 14 case val := <‑ch: 22 err := app.SetRoot(tv, true).
Run()
06
func main() { 15 app.QueueUpdateDraw(func()
{ 23 if err != nil {
07 app := tview.NewApplication()
16 tv.Clear() 24 panic(err)
08 tv := tview.NewTextView()
17 fmt.Fprintf(tv, "%s ", 25 }
09 tv.SetBorder(true).
SetTitle("Test Clock") val) 26 }
08.2023 www.linux-magazin.de 81
Programmieren Snapshot
als sogenannte variadische Funktion. Die nuten und Sekunden nutzt Listing 2 ei ter. Andere Programmiersprachen legen
drei Punkte zwischen dem Namen des nen Trick: Die Funktion time.Since() in so etwas mit einem Template-String wie
Parameters arg und dessen Typ (string) Zeile 11 ermittelt die seit dem Start ver HH:MM:SS fest. Go hingegen wählt den
bestimmen in Go, dass man die Funktion strichene Zeit als Wert vom Typ time.Du seltsamen Weg, den magischen Zeit
entweder gänzlich ohne Argumente auf ration. Allerdings bietet Go für diesen punkt am Montag, den 2.1.2006 um
ruft oder mit einem oder mehreren Argu Typ keine elegante Formatierung als 15:04:05 als Referenz zu verwenden .
menten des angegebenen Typs. String an. Der Typ time.Time hingegen, Den aktuellen Stand der Stoppuhr
In Zeile 6 erzeugt clock() den Chan mit dem Go Werte für die Uhrzeit dar schiebt Zeile 11 in den Channel ch, an
nel, den die Funktion später ans Haupt stellt, kennt die Funktion Format(), die dessen anderem Ende das aufrufende
programm zurückreicht und dadurch das interne Zeitformat lesbar formatiert. Hauptprogramm lauscht und seine Bild
dann nebenläufig Updates für die Uhr Falls Sie sich über den seltsamen String schirmanzeige mit den ankommenden
zeit hochschickt. 15:04:05 als Argument im Code wun Informationen auffrischt.
Für die Anzeige der seit dem Startzeit dern: Go erwartet das Format von Stun Zum Erzeugen des Binaries aus dem
punkt verstrichenen Zeit in Stunden, Mi den, Minuten und Sekunden als Platzhal Source-Code holt der Dreisprung aus
Listing 3 den Code abhängiger Libraries
von Github herein, kompiliert das Ge
Listing 2: clock.go samtkunstwerk und erzeugt schließlich
01
package main 09 for {
ein Binary clock‑main. Ruft man das
Kompilat von der Kommandozeile aus
02
import ( 10 z := time.Unix(0, 0).UTC()
auf, dann färbt es das Terminal schwarz
03 "time" 11 ch <‑ z.Add(time.Since und malt die dynamisch im Sekunden
04 ) (start)).Format("15:04:05")
05 f
unc clock(arg ...string) chan 12 time.Sleep(1 * time.Second)
string { 13 } Listing 3: build‑clock.sh
06 ch := make(chan string) 14 }() go mod init clock‑main
07 start := time.Now() 15 return ch go mod tidy
08 go func() { 16 } go build clock‑main.go clock.go
Listing 4: wifi.go
01
package main 19 }
02
import ( 20 f
unc newPlugin(app *tview.Application, table
03 "strings" *tview.Table, field string, fu func(...string)
chan string, arg ...string) {
04 "github.com/rivo/tview"
21 if len(arg) > 0 {
05 )
22 field += " " + strings.Join(arg, " ")
06
func main() {
23 }
07 app := tview.NewApplication()
24 row := table.GetRowCount()
08 table := tview.NewTable().SetBorders(true)
25 table.SetCell(row, 0, tview.NewTableCell(field))
09 table.SetBorder(true).SetTitle("Wifi Monitor
v1.0") 26 ch := fu(arg...)
82 www.linux-magazin.de 08.2023
Snapshot Programmieren
Listing 5: ping.go
01
package main 19 if firstTime {
02
import ( 20 ch <‑ "Pinging ..."
03 "fmt" 21 firstTime = false
04 "github.com/prometheus‑community/pro‑bing" 22 }
05 "time" 23 pinger.Count = 3
06 ) 24 err = pinger.Run()
07
func ping(addr ...string) chan string { 25 if err != nil {
08 ch := make(chan string) 26 ch <‑ err.Error()
09 firstTime := true 27 time.Sleep(10 * time.Second)
10 go func() { 28 continue
11 for { 29 }
12 pinger, err := probing.NewPinger(addr[0]) 30 stats := pinger.Statistics()
13 pinger.Timeout, _ = time.ParseDuration("10s") 31 ch <‑ fmt.Sprintf("%v ", stats.Rtts)
14 if err != nil { 32 time.Sleep(10 * time.Second)
15 ch <‑ err.Error() 33 }
16 time.Sleep(10 * time.Second) 34 }()
17 continue 35 return ch
18 } 36 }
08.2023 www.linux-magazin.de 83
Programmieren Snapshot
auf, die ihrerseits einen Channel zurück Testaufgabe wieder und wieder aus und Iteration der Endlos-For-Schleife ab
gibt und im Hintergrund ihren Netzwerk reicht die Ergebnisse über den Channel Zeile 11, um es erneut zu versuchen.
test vornimmt. Um dessen Ergebnisse ab an den Aufrufer zurück.
zufangen, startet Zeile 27 eine neue ne Das Anpingen von Servern oder deren
Erste Runde
benläufige Goroutine mit einer Endlos IP-Adressen übernimmt Listing 5 mit der
schleife, die mittels einer select-Anwei Funktion ping(), die entweder einen Beim ersten Eintritt steht die Variable
sung auf dem Channel lauscht. Kommt Host-Namen oder eine IP-Adresse als firstTime auf true. Zeile 20 schickt
dort ein String an, frischt Zeile 32 mit Argument entgegennimmt. An den Auf dann über den Channel ch den String
table.SetCell den Inhalt des zugewie rufer gibt sie einen Channel zurück, in Pinging ... an den Aufrufer zurück,
senen Tabellenfelds auf. dem später Nachrichten der nebenläufig damit der weiß, dass der Test läuft. Die
Damit das auch tatsächlich auf dem ausgeführten Tests eintreffen. Funktion Run() in Zeile 24 führt gemäß
Bildschirm erscheint, gilt es, die Anwei Ganz wie das Kommandozeilen-Utility Zeile 23 drei Pings auf das angegebene
sung an den GUI-Verwalter weiterzu ping schickt Listing 5 ICMP-Pakete an die Netzwerkziel aus und blockiert den Pro
leiten. Das erledigt die Funktion app. angegebene Adresse und nutzt dafür das grammfluss, solange der Vorgang läuft.
QueueUpdateDraw(), über die die GUI Paket pro-bing von Github, das es in Zei Tritt ein Fehler auf, leitet Zeile 26 ihn per
das Tabellenfeld beim nächsten Auffri le 4 hereinzieht. Die neue Pinger-Instanz Channel an den Aufrufer weiter, und
schen neu zeichnet. pinger aus Zeile 12 setzt in Zeile 13 ei nach zehn Sekunden Pause geht conti
nen Timeout von 10 Sekunden. Nach nue in Zeile 28 in die nächste Runde.
deren Verstreichen nimmt der Pinger an, Trifft eine Antwort auf die versendeten
Palim-Palim
dass etwas schiefgelaufen ist und sich ICMP-Pakete ein, ist das Netzwerk offen
Nun gilt es, neue Netzwerktests nach der Server nicht erreichen lässt. Klappt sichtlich intakt. Der Aufruf von Statis
Schema F in die Tabelle einzuhängen. etwa die Namensauflösung für den Ser tics() in Zeile 30 holt dann die statisti
Jeder Test besteht aus einer Funktion, die ver nicht, posaunt Zeile 15 die Meldung schen Daten der absolvierten Tests ein.
ein optionales String-Argument akzep in den Channel. Zeile 16 wartet anschlie Die Antwortzeiten der einzelnen Ping-
tiert und einen Channel zurückreicht. Sie ßend 10 Sekunden. Dann springt conti Requests liegen als Array-Slice von Se
führt nebenläufig die ihr übertragene nue in der folgenden Zeile in die nächste kundenwerten im Fließkommaformat in
Listing 6: eth.go
01
package main 25 var list []string
02
import ( 26 ifaces, err := net.Interfaces()
03 "net" 27 if err != nil {
04 "sort" 28 return list, err
05 "strings" 29 }
06 "time" 30 for _, iface := range ifaces {
07 )
31 addrs, err := iface.Addrs()
08
func nifs(arg ...string) chan string {
32 if err != nil {
09 ch := make(chan string)
33 return list, err
10 go func() {
34 }
11 for {
35 if len(addrs) == 0 {
12 eths, err := ifconfig()
36 continue
13 if err != nil {
37 }
14 ch <‑ err.Error()
38 for _, addr := range addrs {
15 time.Sleep(10 * time.Second)
16 continue 39 ip := strings.Split(addr.String(), "/")[0]
17 } 40 if net.ParseIP(ip).To4() != nil {
19 time.Sleep(10 * time.Second) 42 }
20 } 43 }
21 }() 44 }
22 return ch 45 sort.Strings(list)
23 } 46 return list, nil
24
func ifconfig() ([]string, error) { 47 }
84 www.linux-magazin.de 08.2023
Snapshot Programmieren
stats.Rtts. Zeile 31 verpackt alle drei vor es den Namen der Schnittstelle (name, Laden der Seite im Test nach 0,142 Se
Werte mit dem Platzhalter %v im Format- zum Beispiel en0) und die IP-Adresse kunden erledigt war – vorbildlich.
String in eine Zeichenkette, die Zeile 31 (ohne den Subnetz-Zusatz) an den Array- Zur Ermittlung dieser Zahl setzt Lis
in den Channel schiebt. Von dort Slice list anhängt. Den sortiert Zeile 45 ting 7 in Zeile 17 mit der Funktion Get()
schnappt sie der Aufrufer und zeigt sie in alphabetisch, und Zeile 46 gibt ihn an einen HTTP-Request ab, der so lang
der grafischen Oberfläche an. den Aufrufer der Funktion ifconfig() in blockt, bis die Daten eintrudeln oder der
Zeile 12 zurück. Server einen Fehler liefert. Hängt die An
Dort passiert dasselbe wie schon zu zeige in der Tabellenspalte später also
Verbindung steht?
vor: Ergebnisse wie etwa Fehlermeldun bei Fetching ..., dann stimmt etwas
Verbindet sich ein WLAN-Client mit dem gen oder erfolgreich eingeholte IP-Ad mit der Verbindung nicht. In dem Fall
Router, bekommt er eine IP-Adresse zu resslisten werden als kommaseparierte sollten die anderen Tests Hinweise auf
gewiesen, die er im Erfolgsfall mit Kom Strings in den Channel eingespeist, auf die Ursache geben. Klappt hingegen die
mandos wie ifconfig anzeigen kann. Es dem das Hauptprogramm lauscht und Auflösung des Host-Namens wegen
hilft bei der Fehlersuche, zu wissen, ob eintrudelnde Nachrichten in der zuge fehlerhafter DNS-Konfiguration nicht,
das geklappt hat. Daher forscht das wiesenen Tabellenspalte anzeigt. Steht schiebt Zeile 19 die Fehlermeldung in
Plugin aus Listing 6 auf den Netzwerk also in der Ifconfig-Zeile der Terminal- den bereitgestellten Channel, von wo
schnittstellen des Rechners nach lokalen UI ein Eintrag im häuslich verwendeten das Hauptprogramm den Fehler auf
IP-Adressen. IP-Bereich um 192.168.0.x, dann steht of schnappt und ihn anzeigt.
Das Paket net aus dem Go-Standard fensichtlich die Verbindung zum Router. Funktioniert alles, misst Zeile 23, wie
fundus offeriert dazu die Funktion Taucht in der Spalte hingegen nur das lange der Vorgang gedauert hat. Dazu
Interfaces(), die in Zeile 26 alle Netz Loopback-Interface auf, stimmt etwas subtrahiert sie von der aktuellen Zeit die
werkschnittstellen des Rechners zurück mit der Vergabe der IP-Adressen nicht. in Zeile 16 gesetzte Startzeit des Re
gibt. Bei einem Laptop im WLAN sind das quests und schiebt den so erhaltenen
normalerweise zwei: die WLAN-Karte Sekundenwert als Fließkommazahl in
Ganze Seiten holen
und das Loopback-Interface. Bei einem den Channel. Er erscheint dann mit der
zusätzlich verdrahteten Rechner können Schließlich bietet Listing 7 noch einen Meldung OK in der Tabellenspalte.
es auch mehr sein. Jedes dieser Inter End-to-End-Test, indem es via Internet Der Dreisprung aus Listing 8 erstellt
faces besitzt nun, sofern verbunden, eine die Youtube-Titelseite lädt. Läuft dieser aus den Quellen des Hauptprogramms
oder mehrere IP-Adressen. Addrs() in Test erfolgreich, ist alles in Butter. Da er (Listing 4), den Test-Plugins (Listings 5
Zeile 31 holt sie ein, die For-Schleife ab in der letzten Zeile der UI auch noch die bis 7), der Uhr (Listing 1) sowie den Git
Zeile 38 klappert sie ab. zum Einholen der Seite verstrichene Zeit hub-Paketen und deren Abhängigkeiten
In den USA hat kaum jemand daheim in Sekunden angibt, lässt sich zudem die das Binary wifi. Dessen Aufruf startet
IPv6-Adressen. Daher filtert Zeile 40 alles Geschwindigkeit der ISP-Verbindung ab die Terminal-UI und der User erfährt, wie
heraus, was nicht nach IPv4 aussieht, be 1
schätzen. Abbildung zeigt, dass das es um das Netzwerk steht. Bei Bedarf las
sen sich selbst geschriebene Plugins
nach diesem Schema einhängen und in
Listing 7: www.go Tabellenzeilen anzeigen. (uba/jlu) █
01
package main 16 now := time.Now()
02
import ( 17 _, err := http.Get(arg[0])
Listing 8: build‑wifi.sh
03 "fmt" 18 if err != nil {
01
$ go mod init wifi
04 "net/http" 19 ch <‑ err.Error()
02
$ go mod tidy
05 "time" 20 time.Sleep(10 * time.
03 $
go build wifi.go clock.go
Second)
06 ) eth.go ping.go www.go
21 continue
07 f
unc httpGet(arg ...string)
chan string { 22 }
23 dur := time.Since(now)
08 ch := make(chan string) Dateien zum Artikel
09 firstTime := true
24 ch <‑ fmt.Sprintf("%.3f OK herunterladen unter
", dur.Seconds())
10 go func() { www.lm-online.de/dl/48709
25 time.Sleep(10 * time.
11 for { Second)
12 if firstTime { 26 }
13 ch <‑ "Fetching ..." 27 }() Weitere Infos und
14 firstTime = false
interessante Links
28 return ch
15 } www.lm-online.de/qr/48709
29 }
08.2023 www.linux-magazin.de 85
© Svetlana Sukhorukova / 123RF.com
Modernes C++ in der Praxis – Folge 70
Vielseitige Konzepte
Die letzten zwei Artikel dieser Serie stellten die diversen araus ergibt sich unmittelbar die Frage:
D
Welche vordefinierten Concepts umfasst
Anwendungsbereiche von Concepts vor. Auf die Pflicht folgt C++20 eigentlich?
in diesem Artikel die Kür: die Definition eigener Concepts. Vordefinierte Concepts
ainer Grimm
R C++20 bringt einen reichen Satz von
mehr als 100 Concepts mit. Die folgen-
den Zeilen sollen lediglich als kleiner
Concepts lassen sich prinzipiell auf zwei Appetithappen dienen. Genaueres lässt
Arten definieren: zum einen durch eine sich im aktuellen Entwurf zum C++23-
Kombination von anderen Concepts und Standard nachlesen. Die aufgeführten
Compile-Zeit-Prädikaten, zum anderen Concepts befassen sich mit elementaren
Der Autor durch Requires-Expressions.
Die goldene Regel, das Rad
Rainer Grimm ist seit über 20 Jahren als
nicht neu zu erfinden, lässt
Softwarearchitekt, Team- und Schulungslei-
sich auch auf Concepts an-
ter tätig. Er ist Autor zahlreicher Bücher und
wenden. Das bringen auch
Artikel zu den Programmiersprachen C++,
die C++ Core Guidelines
Python und Haskell. Auf seinem Blog
in T.11 deutlich auf den
https://www.modernescpp.de beschäftigt er
sich intensiv mit den Aspekten von C++.
Punkt: „Whenever possible 1 Die Concepts Integral, SignedIntegral und
use standard concepts.“ U
nsignedIntegral im Einsatz.
86 www.linux-magazin.de 08.2023
C++ Programmieren
08.2023 www.linux-magazin.de 87
Programmieren C++
auf ihren Template-Parametern besitzen. func(5u) (Zeile 17) die Überladung auf sollte der konkrete Datentyp zumindest
Unser letzter Artikel zu Concepts ist UnsignedIntegral verwendet. ein semiregulärer Typ sein. Die C++ Core
genauer auf diese syntaktische Variante Guidelines bringen das in T.46 auf den
eingegangen. Punkt: „Require template arguments to be
Requires-Expressions
Die Ausgabe des Programms in Abbil- at least semiregular“. Daher bietet der
1
dung zeigt sehr schön, dass der Auf- Ein konkreter Datentyp, der sich im C++- C++20-Standard bereits die Concepts
ruf func(‑5) (Zeile 16) die Überladung Ökosystem intuitiv nutzen lässt, sollte sich std::semiregular und std::regular an.
auf SignedIntegral und der Aufruf wie ein int verhalten. Formal betrachtet, Diese Concepts lassen sich zu Übungs-
zwecken auch selbst definieren und mit
den C++20-Pendants vergleichen.
Listing 1: Concept-Definition Jetzt bleibt nur noch eine wichtige Fra-
template Template‑Parameter‑Liste
ge zu beantworten: Welche Eigenschaf-
ten müssen reguläre beziehungsweise
concept Concept‑Name = Constraint‑Expression;
semireguläre Datentypen besitzen? Ein
semiregulärer Datentyp X muss die Gro-
ßen Sechs (siehe Tabelle Die Großen
Listing 2: Integral-Concepts Sechs) sowie swap(X&,X&) unterstützen.
01
#include <iostream>
Außerdem muss X ebenfalls swap(X&,X&)
unterstützen.
02
template <typename T>
Die Type-Traits-Bibliothek macht die
03
concept Integral = std::is_integral<T>::value; Definition des entsprechenden Concepts
04
template <typename T> zum Kinderspiel. Das Type-Trait isSemi
05
concept SignedIntegral = Integral<T> && std::is_signed<T>::value; Regular lässt sich direkt implementieren
06
template <typename T> und dann zur Definition des Concepts in
Listing 3 verwenden.
07
concept UnsignedIntegral = Integral<T> && !SignedIntegral<T>;
Ein Datentyp unterstützt die Typeigen-
08
void func(SignedIntegral auto integ) {
schaft isSemiRegular (Zeile 2), wenn alle
09 std::cout << "SignedIntegral: " << integ << '\n'; Typeigenschaften der Großen Sechs (Zei-
10 } len 3 bis 8) und die Bedingung std::is_
11
void func(UnsignedIntegral auto integ) { swappable (Zeile 9) erfüllt sind. Der ver-
bleibende Schritt zur Definition des Con-
12 std::cout << "UnsignedIntegral: " << integ << '\n';
cepts SemiRegular ist die Verwendung
13 }
des Typ-Traits isSemiRegular (Zeile 11).
14
int main() { Nun fehlt nur noch eine Kleinigkeit,
15 std::cout << '\n'; um das Concept Regular zu definieren.
16 func(‑5); Ein Datentyp T unterstützt das Concept
17 func(5u); Regular, wenn er semiregulär ist und
sich auf Gleichheit überprüfen lässt. Lis-
18 std::cout << '\n';
ting 4 definiert dazu das Concept Equal
19 } und verwendet es direkt zur Definition
des Concepts Regular.
88 www.linux-magazin.de 08.2023
C++ Programmieren
Haben Sie erst einmal das Concept Equal std::moveable. Daraus folgt, dass ein wendet werden. Die Funktion behaves
implementiert, ist die Definition des Con- k opierbarer Datentyp automatisch auch LikeAnInt in Zeile 4 fordert, dass T das
cepts Regular nur noch eine Pflichtauf- die Move-Semantik unterstützt. Concept std::regular umsetzt. Dieses
gabe, bei der Sie das Concept Equal mit Das Concept std::movable basiert auf Concept unterstützt int (Zeile 9) und
dem Concept SemiRegular konjugieren. der Type-Traits-Funktion std::is_ob std::vector (Zeile 11). Der minimale Da-
Der C++20-Standard setzt die Concepts ject . Bei den verbleibenden Kompo- tentyp NotEqualityComparable lässt sich
std::semiregular und std::regular nenten der Concepts std::moveable und hingegen nicht auf Gleichheit verglei-
aus elementareren Concepts zusammen std::copyable handelt es sich um weite- chen – genau das moniert der Compiler.
(Listing 5). re Concepts des C++20-Standards . 2
Abbildung zeigt die entscheidenden
Das Concept std::regular ist in Was passiert nun, wenn man das Zeilen der GCC-Fehlermeldung.
C++20 ähnlich definiert wie das benut- Concept std::regular anwendet? Das
zerdefinierte Concept Regular. Das Con- Funktions-Template behavesLikeAnInt
Fazit und Ausblick
cept std::semiregular dagegen be- in Listing 6 zeigt das Concept im Einsatz.
steht aus einer Kombination grundlegen- Um das Concept std::regular zu be- Concepts sind eine Revolution in moder-
derer Concepts aus std::copyable und nutzen, muss der Header <concepts ver- nem C++. Sie sind ähnlich fundamental
für Templates wie Interfaces für das ob-
jektorientierte Design.
Die Großen Sechs Die Ranges-Bibliothek stellt eine zweite
Variante der Standard Template Library
Funktion Signatur
dar. Ranges verändern C++ ähnlich fun-
X()
damental wie Concepts. (jcb/jlu) █
Standardkonstruktor
Copy-Konstruktor X(const X&)
Copy-Zuweisungsoperator X& operator = (const X&)
Move-Konstruktor X(X&&) Dateien zum Artikel
herunterladen unter
Move-Konstruktor X& operator = (X&&)
www.lm-online.de/dl/49301
Destruktor ~X()
{ a == b } ‑> std::convertible_to<bool>;
{ a != b } ‑> std::convertible_to<bool>;
}; Listing 6: std::equal und
template<typename T> td::unequal
s
08.2023 www.linux-magazin.de 89
Service IT-Profimarkt
IT PROFI
hochwertige Produkte und Leistungen
Weitere Informationen:
an. Die exakten Angebote jeder Firma
MARKT
entnehmen Sie deren Homepage. Der Computec Media GmbH
ersten Orientierung dienen die sechs
Anzeigenabteilung
Kategorien Hardware, Software, Seminar
anbieter, Systemhaus, Netzwerk/TK sowie Dr.-Mack-Straße 83
Schulung/Beratung. Der IT-Profimarkt- D-90762 Fürth
Sie fragen sich, wo Sie maßgeschneiderte
Eintrag ist ein Service von Linux-Magazin
Linux-Systeme sowie kompetente An-
und LinuxUser.
sprechpartner zu Open-Source-Themen Tel.: +49 (0) 911 / 2872-252
finden? Der IT-Profimarkt weist Ihnen Besonders komfortabel finden Sie einen
hier als zuverlässiges Nachschlagewerk Linux-Anbieter in Ihrer Nähe online über Fax: +49 (0) 911 / 2872-21
den richtigen Weg. Die im Folgenden die Umkreissuche. Schauen Sie einfach
gelisteten Unternehmen beschäftigen einmal rein unter:
E-Mail: anzeigen@linux-magazin.de
Experten auf ihrem Gebiet und bieten http://www.it-profimarkt.de.
IT-Profimarkt
1 = Hardware 2 = Netzwerk 3 =Systemhaus 4 = Seminaranbieter 5 = Software 6 = Schulung/Beratung
Firma Anschrift Telefon Web 1 2 3 4 5 6
Schlittermann internet & unix support 01099 Dresden, Tannenstraße 2 0351-802998-1 www.schlittermann.de ✔ ✔ ✔ ✔
Heinlein Support GmbH 10119 Berlin, Schwedter Straße 8/9b 030-405051-0 www.heinlein-support.de ✔ ✔ ✔ ✔ ✔
Anzeigen
NEWS,
Basics. Projekte.
Ideen. Know-how.
Jetzt
testen! BLOGS
& JOBS
30% sparen
nur 8,00 €
X25
EN SOURCE
Jetzt bestellen! LINUX UND OP
serem Newsletter
topaktuell mit un
• Tel.: 0911 / 993 990 98 • E-Mail: computec@dpv.de
Einfach online bestellen: shop.raspberry-pi-geek.de www.linux-magazin.de/subscribe
90
nschule-Weber_1-9_Administrator.indd 1 29.05.15 10:07 www.linux-magazin.de 08.2023
IT-Profimarkt Service
IT-Profimarkt
dass IT GmbH 50674 Köln, Händelstraße 25-29 0221-3565666-0 www.dass-it.de ✔ ✔ ✔ ✔ ✔
Manfred Heubach EDV und Kommunikation 73730 Esslingen, Hindenburgstraße 171 0711-4904930 www.heubach-edv.de ✔ ✔ ✔ ✔
in-put – Das Linux-Systemhaus GmbH 75179 Pforzheim, Kurze Steig 31 07231- 440785 ‑0 www.in-put.de ✔ ✔ ✔ ✔ ✔ ✔
Tuxedo Computers GmbH 86159 Augsburg, Alter Postweg 101 0821-89982992 www.tuxedocomputers.com ✔ ✔ ✔ ✔
OSTC Open Source Training and Consulting GmbH 90425 Nürnberg, Waldemar-Klink-Straße 10 0911-3474544 www.ostc.de ✔ ✔ ✔ ✔ ✔ ✔
Siedl Networks GmbH A-3500 Krems a. d. Donau, Dr.-Franz-Wilhelm-Str. 2 +43 (0)2732-71545-0 www.siedl.net ✔ ✔ ✔ ✔ ✔
Anzeigen
EDITION
・GNU / Linux
・Netzwerke
CC-Lizenz: ・Systeme
Frei kopieren und
weiter verteilen!
Linux.Usergroups
Aachen Aachener Linux-Usergroup (ALUG) Berlin / Fried- LinuxWorks! Delitzsch Linux-Usergroup Delitzsch Fürth Fürther Linux-Usergroup (FLUG)
http://www.alug.de richshain-Kreuz- http://www.linux-works.de (Sachsen) http://www.lug-delitzsch.de http://www.fen-net.de/flug
berg
Aachen C omputer-Club an der RWTH Aachen Detmold Linux-Usergroup Ostwestfalen-Lippe Gießen L inux-Usergroup Gießen (LUGG)
e.V. (CCAC) Berlin / Marzahn- Open-Source-Fan-Group Marzahn- (LUGOWL) http://www.lugg.de
http://www.ccac.rwth-aachen.de Hellersdorf Hellersdorf (OSFanG) http://lug-owl.de/Lokales/Detmold/
http://www.osfang.de
Grafing L inux-Usergroup Grafing (LUGG)
Aalen Linux-Usergroup Aalen Dortmund Linux-Usergroup Dortmund http://www.lug-grafing.org
http://www.lug-aalen.de Bern (CH) L inux-Usergroup Bern (LUGBE) (LUGRUDO)
http://www.lugbe.ch http://www.outerspace.de/lugrudo/
Greifswald Linux-Usergroup Greifswald
Ahaus L inux-Usergroup Ahaus (LUGAH) http://www.lug-hgw.de/
Biel / Bienne / Linux-Usergroup Seeland Dresden Linux-Usergroup Dresden
http://www.lugah.de
Seeland (CH) (LugSeeland) http://lug-dd.schlittermann.de/
http://www.lugseeland.ch Groß-Gerau L inux-Usergroup Groß-Gerau (LUGGG)
Ahlen/Westfalen LUG Ahlen http://www.luggg.de
Duisburg D uisburger Linux-Usergroup (DULUG)
http://linuxahlen.li.funpic.de/ http://www.dulug.de
Bielefeld Linux-Usergroup Ostwestfalen-Lippe
http://lug-owl.de/Lokales/Bielefeld/ Gummersbach Gummersbacher Linux-Usergroup
(GULUG)
Ahrtal L inux-Usergroup Ahrtal (Ahrlug) Düsseldorf L inux-Usergroup Düsseldorf (DLUG) http://www.gulug.de
http://www.ahrlug.de http://www.dlug.de
Bitburg-Prüm Linux-Usergruppe Schneifeltux
http://www.schneifeltux.de Gunzenhausen Gunzenhauser Linux-Usergroup
Aichach Linux-Usergroup Aichach Ebstorf E bstorfer Linux-Stammtisch (ELST) (LUGGUU)
http://www.lug-aichach.de support@konqi-werkstatt.de http://www.gunnet.de/linux
Bocholt L inux-Usergroup Bocholt (BLUG)
http://www.blug.de
Altdorf / G NU/Linux User Group Altdorf Eichsfeld E ichsfelder Linux User Group (EICLUG) Gütersloh Linux-Usergroup Ostwestfalen-Lippe
Nürnberg (GLUGA) http://linux.eichsfeld.net (LUGOWL)
Bochum L inux-Usergroup Bochum (BGLUG)
http://www.gluga.de http://lug-owl.de/Lokales/Guetersloh/
http://www.bglug.de
Elmshorn C omputerclub Elmshorn e.V.
Amberg Open-Source-Stammtisch Amberg Göttingen G öttinger Linux User Group (GOELUG)
Bonn L inux/Unix Usergroup Sankt Augustin http://www.computerclub-elms-
(amTuxTisch) http://www.goelug.de/
(LUUSA) horn.de
http://www.amtuxtisch.de/
http://www.luusa.org
Erding Linux-Usergroup Erding Göttingen Göttinger Unix/Linux-Anwender
Ansbach L inux-Usergroup Ansbach (LUGAN) http://www.lug-erding.de gruppe (GULAG)
Bozen (Südtirol) L inux-Usergroup Bozen (LUGBZ) http://gulag.de
http://www.lug-an.de http://www.lugbz.org
Erlangen E rlanger Linux-Usergroup (ERLUG) Hagenberg (A) L inux User Group der FH Hagenberg
Aschaffenburg Linux-Usergroup Aschaffenburg Brandenburg B randenburger Linux User Group http://www.erlug.de (fhLUG)
(LUGAB) e.V. (BraLUG) http://fhLUG.at
http://www.lug-ab.de http://www.bralug.de Essen E ssener Linux-Freunde (ELiF)
http://www.linuxstammtisch.de Halberstadt Linux-Usergroup Halberstadt
Augsburg L inux-Usergroup Augsburg (LUGA) Braunschweig Braunschweiger Linux-User-Group http://www.lug-hbs.de
http://www.luga.de (BSLUG) Essen E ssener Linux-Usergroup (ELUG)
http://www.bs-lug.de http://www.elug.de Hamburg L UG-Balista Hamburg e.V. (LUG-
Backnang Linux-Usergroup Backnang Balista )
http://www.lug-bk.de Bremen Linux-Stammtisch Bremen http://www.lug-balista.de
Essen P erl Mongers im Ruhrgebiet (Ruhr.pm)
http://www.lug-bremen.de http://ruhr.pm.org/
Bad Brückenau L inux-Usergroup Bad Brückenau Hamburg U nix-Gruppe der Hamburger MH e.V.
rol42@web.de Bremerhaven Linux-Stammtisch Bremerhaven http://www.hmh-ev.de
Esslingen Linux-Usergroup Esslingen
http://www.lug-bremerhaven.de http://rhlx01.rz.fht-esslingen.de/lug/
Bad Driburg L inux-Usergroup Bad Driburg Hameln L inux-Usergroup Weserbergland (LBW)
http://www.bdpeng.de.vu Bretten B rettener Linux-Usergroup (BRELUG) http://tux.hm
Ettlingen / Albtal LUG Albtal
http://www.brelug.de http://www.lug-albtal.de
Hanau H anauer Linux-Usergroup (HULUG)
Bad Hersfeld Linux-Usergroup Hersfeld
Bruchsal Linux-Usergroup Bruchsal http://www.hulug.de
http://www.lugh.de
Fischbachtal F ischbachtaler Linux User Group
http://www.lug-bruchsal.de (FIBALUG)
http://takealug.de Hannover L inux-Usergroup Hannover (LUGH)
Bad Wildungen L inux-Usergroup Bad Wildungen
Buchholz Nord- L inux-Usergroup Buchholz Nordheide http://lug-hannover.de
http://linuxheaven.cjb.net
heide http://www.linux21244.de/ Flensburg L inux-Usergroup Flensburg (LUGFL)
http://www.lugfl.de Hattingen H attinger Linux-Usergroup (HatLug)
Bamberg L inux-Usergroup Bamberg (GLUGBA) http://www.hatlug.de
http://www.lug-bamberg.de Böblingen / Linux-Usergroup Böblingen/Sindel-
Sindelfingen fingen (LUGBB) Frammersbach Frammersbacher LUG
http://www.lugbb.org kke@gmx.net Hegau H egau Linux User Gruppe (Hegau
Basel (CH) L inux-Usergroup Basel (BLUG) LUG)
http://www.blug.ch http://www.linuxag.hegau.org
Celle Linux-Usergroup Celle Frankfurt Linux-Usergroup Frankfurt
http://www.lug-celle.de http://www.lugfrankfurt.de
Bautzen Linux-Usergroup Bautzen Heidenheim L inux User Group Heidenheim
http://www.lug-bz.de http://www.lug-hdh.de
Chemnitz L inux-Usergroup Chemnitz (CLUG) Freiburg F reiburger Linux-Usergroup (FLUG)
http://www.clug.de http://www.freiburg.linux.de
Bayreuth Linux-Usergroup Bayreuth Heilbad Heiligen- Linux-Stammtisch LinuxNode
http://www.linux-bayreuth.de stadt Eichsfeld
Cottbus C ottbuser Linux-Usergroup (COLUG) Freising L inux-Usergroup Freising (LUGFS) http://linuxnode.eichsfeld.net
http://www.colug.de/ http://www.lug-fs.de
Bergisch Glad- Bergische Linux- und Unix-Enthusias-
bach ten u. -Freunde (BLUEFROGS) Herford G NU/Linux Usergroup Herford
http://www.bluefrogs.de Damme U sers of Linux Damme (ULD) Friedberg F riedberger Linux User Group (FriLUG) (GLUGHF)
http://www.damme.de (Hessen) http://www.frilug.de http://lug-owl.de/LugWiki/GLUGHF
92 www.linux-magazin.de 08.2023
Linux.Usergroups
Horrheim Linux-Usergroup Vaihingen/Enz Köln Linux-Workshop Köln (LiWoK)
(VLUG) http://www.uni-koeln.de/themen/
http://www.vlug.de linux/
HASE LÄUFT!
http://www.lug-taunus.org
http://www.lug-ld.de
Linux.Usergroups
Metelen Linux-Stammtisch Metelen Ortenaukreis/ Kinzigtäler Linux User Group (KiLUG) Sauerland Linux-Usergroup Sauerland Waiblingen Computerclub Waiblingen e.V.
http://www.linuxdu.de Baden http://www.kilug.de http://www.lug-sauerland.de http://www.ccwn.org
Olpe Linux-Usergroup Olpe Salzburg (A) Linux-Usergroup Salzburg Vorarlberg (A) L inux-Usergroup Vorarlberg (LUGV) Zwickau L inux-Usergroup Zwickau (ZLUG)
http://www.lug-raum-olpe.de.vu http://www.salzburg.luga.or.at http://www.lugv.at http://www.zlug.org
94 www.linux-magazin.de 08.2023
© tostphoto,123RF
README
In jedem Artikel in diesem Magazin liefert eine Reihe spezieller Textauszeichnungen und
hilfreicher grafischer Elemente wichtige Zusatzinformationen zum Text. Jörg Luther
Der Mensch lebt nicht vom Text allein: Der „Umbruchhaken“ am Ende der ersten dem ein blauer Pfeil nach rechts weist: .
Zu so gut wie jedem Artikel im Linux- Zeile des Codes verweist hier darauf, dass Wenn Sie häufig im WWW unterwegs
Magazin gehört eine Reihe von Zusatz es sich eigentlich bei dem Codesegment sind, ist Ihnen ein solches oder ähnliches
informationen, die das bloße Narrativ um eine einzige Eingabezeile handelt, die Element dort mit Sicherheit schon be-
um weiterführende Inhalte ergänzen. lediglich aus Platzgründen im Druck um- gegnet: Im Heft wie im Netz bezeichnet
Manche davon integrieren sich direkt brochen werden musste. In Listing-Kästen es den Verweis auf eine weiterführende
in den Textfluss, andere stehen als ge- gibt es diesen Umbruchhaken nicht, hier Information.
sonderte grafische Elemente in einer der ist jede Zeile farbig hinterlegt. Im Netz kann man sich durchklicken,
Textspalten. Alle diese Elemente folgen Doch zurück zur Kursivierung: Sie kann auf dem Papier funktioniert das leider
gewissen Konventionen, die denen, die außer Platzhaltern auch andere Elemente nicht. Um an die Links zum Artikel zu
sie kennen, das Verständnis des Texts bezeichnen, zum Beispiel Paketnamen gelangen, blättern Sie ans Ende des Bei-
erleichtern oder aufzeigen, auf welchem und Benutzerkonten, etwa build-essential trags, wo Sie einen Kasten Weitere Infos
Weg sie an zusätzliches Material gelan- und root. Aber auch Menüpunkte dru- und interessante Links finden. Entweder
gen können. Da diese Konventionen nicht cken wir kursiv ab, wobei in Menüfolgen tippen Sie die dort angegebene URL
immer ganz intuitiv ausfallen, wollen wir eine Pipe die einzelnen Elemente trennt: www.lm‑online.de/qr/Nummer in einen
sie im Folgenden kurz erläutern. Sonstiges | Textkodierung | Unicode. Webbrowser ein – das führt Sie auf eine
Webseite mit allen Links zum Artikel –,
oder Sie scannen mit dem Smartphone
Typografische Konventionen Tasten und Tastenfolgen
oder dem Tablet den im Kasten ebenfalls
Der Fließtext jedes Artikels im Linux- Begegnet Ihnen im Text ein Buchstabe abgedruckten QR-Code ein und surfen
Magazin folgt typografischen Konven oder eine Buchstabenfolge in eckigen auf diesem Weg zur Seite mit den Links.
tionen, die die Orientierung erleichtern Klammern, wie [Esc], handelt es sich da- Apropos QR-Code: In manchen Artikeln
und Elemente leichter identifizierbar bei um eine symbolische Taste, die für finden Sie auch einen Kasten Dateien
machen sollen. So hebt eine blaue einen Tastendruck steht. Als Schreibweise zum Artikel herunterladen unter mit der
Einfärbung Verweise auf Tabellen und dient dabei grundsätzlich die Beschrif- URL www.lm‑online.de/dl/Nummer. Er
Kästen hervor: siehe Kasten Kastentitel. tung der Tasten einer deutschen Tastatur. funktioniert analog zum Kasten mit den
Die Kursivierung signalisiert hier, wie in Ein Druck auf [T] erzeugt also ein kleines Links und bringt Sie auf eine Webseite,
vielen anderen Fällen, eine symbolische „t“, die Kombination [Umschalt]+[T] ein die auf herunterladbare Dateien zum
Bezeichnung; in einem Codebrocken großes „T“. Das Pluszeichen zwischen den Artikel verweist. In vielen Fällen handelt
könnte das etwa so aussehen: Tasten signalisiert, dass man sie gleich- es sich dabei um die zugehörigen Listings.
zeitig drücken muss, ein Komma dagegen, Das auf dieser Seite abgedruckte Ex
$ cat "EinTextbrocken" >> dass es sie nacheinander zu betätigen gilt. emplar dient allerdings lediglich als Bei-
Ausgabe.txt Das allseits beliebte Copy & Paste gelingt spiel und führt ins Nirgendwo. n
also mit [Strg]+[C], [Strg]+[V].
08.2023 www.linux-magazin.de 95
Service Inserenten
Inserenten
B1 Systems GmbH www.b1-systems.de 1, 100 Netways GmbH www.netways.de 7, 11
Computec Media GmbH www.computec.de 61, 99 PC Games Hardware www.pcgameshardware.de 27, 47
Fernschule Weber GmbH www.fernschule-weber.de 90 Raspberry Pi Geek www.raspberry-pi-geek.de 90
Heinlein Consulting GmbH www.heinlein-support.de 9 Schlittermann
www.schlittermann.de 91
Linux-Community www.linux-community.de 13, 93 internet & unix support
Linux-Magazin Online www.linux-magazin.de 25, 90, 96 Einem Teil dieser Ausgabe liegt eine Beilage der Firma Strato AG (www.strato.de) bei.
Linux User www.linux-user.de 79, 91 Wir bitten unsere Leser um freundliche Beachtung.
Autoren
Autor/-in Artikel Seite Martin Gerhard Loschwitz Mit Überblick 28
Jens-Christoph Brendel Tux liest 60 Martin Gerhard Loschwitz Wir haben ein Problem 52
Erik Bärwaldt Schlagzeilen 38
Jürgen Quade Lücken stopfen 64
Paul Büchner Alles bestens verpackt 76
Thomas Reuß Für den Ernstfall 48
Hans-Georg Eßer Bitte abbiegen! 70
Mike Schilli Dr. Drahtlos 80
Markus Feilner Doku ist Teamwork 20
Mark Vogelsberger Gelernt ist gelernt 62
Friedhelm Greis Auf der Wunschliste 58
Mark Vogelsberger Gut getarnt 75
Rainer Grimm Vielseitige Konzepte 86
Anna Lehmann Baustelle Doku 14 Uwe Vollbracht Tooltipps 36
Events
14.-16.07.2023 15.-19.08.2023 10.-12.10.2023
Hackover 2023 Chaos Communications Camp 2023 it-sa Expo&Congress 2023
Hannover Zehdenick Nürnberg
https://hackover.de https://events.ccc.de https://www.itsa365.de/de-de
www.linux-magazin.de/subscribe
Impressum Service
ABONNEMENT
Preise Print Deutschland Österreich Schweiz
Probeabo (3 Ausgaben)
No Media-Ausgabe € 17,00 € 17,00 € 17,00
DVD-Ausgabe € 21,00 € 21,00 € 21,00 Ein Unternehmen der MARQUARD MEDIA GROUP AG
Verleger: Jürg Marquard
Jahresabo (12 Ausgaben)
No-Media-Ausgabe € 92,00 € 100,00 € 107,00 Redaktion Computec Media GmbH
Redaktion Linux-Magazin
DVD-Ausgabe € 112,00 € 120,00 € 127,00 Dr. -Mack-Straße 83
Jahres-DVD zum Abo 1 € 6,70 € 6,70 € 6,70 90762 Fürth
Telefon: (0911) 2872-110
Preise Digital Deutschland Österreich Schweiz
E-Mail: redaktion@linux-magazin.de
Heft-PDF Einzelausgabe € 8,50 € 8,50 € 8,50 Web: http://www.linux-magazin.de
Digtal-Abo (12 Ausgaben) € 84,99 € 84,99 € 84,99 Geschäftsführer Christian Müller, Rainer Rosenbusch
Kombi Digital + Print € 104,00 € 112,00 € 119,00 Chefredakteur,
(No-Media-Ausgabe) (12 Aus- Brand/Editorial Director Jörg Luther (V.i.S.d.P.), joerg.luther@computec.de (jlu)
gaben)
Stv. Chefredakteur Jens-Christoph Brendel, jens-christoph.brendel@computec.de (jcb)
Kombi Digital + Print € 124,00 € 132,00 € 139,00 Redaktionsltg. Online Ulrich Bantle, ulrich.bantle@computec.de (uba)
(DVD-Ausgabe) (12 Ausgaben) Redaktion Carina Schipper, carina.schipper@computec.de (csi)
Ständige Mitarbeiter Kristian Kißling, Rainer Grimm, Martin Loschwitz, Jürgen Quade, Thomas Reuß,
1
nur erhältlich in Verbindung mit einem Jahresabo Print
Mike Schilli, Tim Schürmann, Mark Vogelsberger, Uwe Vollbracht, Carsten Zerbst
Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises
Schlussredaktion Sabine Schmitt
oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei Verlängerung neu zu
DELUG-DVD Tim Schürmann, info@tim-schuermann.de
erbringen. Andere Abo-Formen, Ermäßigungen im Ausland etc. auf Anfrage. Adressänderungen bitte um-
Grafik Judith Erb (Rohmaterial Titelseite: qvist, 123RF.com /
gehend beim Kundenservice mitteilen, da Nachsendeaufträge bei der Post nicht für Zeitschriften gelten.
Drew, https://drew.beer, CC BY 4.0)
Bildnachweis 123RF.com, Fotolia.de, Photocase.com, Pixelio.de, freeimages.com und andere
08.2023 www.linux-magazin.de 97
Vorschau
auf 09/2023
© rawpixel / 123RF.com
Die nächste Ausgabe
erscheint am 03.08.2023
Offene Verwaltung
Open Source scheint für die viel disku-
tierte Digitalisierung der Verwaltung
eine geradezu maßgeschneiderte Opti-
on zu sein: Keine Lizenzkosten belasten
die klammen öffentlichen Kassen, die
Verwaltung ist nicht länger bestimmten Selbst ist der Mann DIY-Container
Anbietern ausgeliefert, und Transparenz
ist bereits eingebaut. Dennoch ist Open Bei dem Eigenbau-NAS, das Martin Inzwischen sollte sich herumgesprochen
Source noch immer kein Standard im Loschwitz in der nächsten Ausgabe vor- haben, dass es gefährlich sein kann, Do-
Rathaus. Weshalb freie Software dort stellt, handelt es sich nicht um ein teures cker-Container aus unbekannter Quelle
nur langsam Fuß fasst und was man Funktionsmonster, dessen vielfältige einzusetzen. Sie selbst zu erstellen, ist
andererseits aus den Erfolgen vieler Dienste man doch nur zum kleineren Teil auf jeden Fall weniger riskant – nur: Wie
einschlägiger kommunaler Initiativen benötigt. Es ist deutlich kostengünstiger macht man das? Welche Methode ist si-
lernen kann, das untersucht das Linux- und lässt sich zudem zielgenauer an die cher und effektiv? Und wie können Dritte
Magazin in der nächsten Ausgabe. eigenen Bedürfnisse anpassen. das Resultat ohne Vorbehalte nutzen?
DIE PREMIUM-
WÄRMELEITPASTE
FÜR GAMER!
www.pcgh-gear.de
EARLY-BIRD
TICKET BIS
30.06.
Cloud, Container,
Automatisierung & Storage
27. – 29. NOVEMBER 2023
IN BERLIN
Veranstalter:
B1 Systems GmbH
Osterfeldstr. 7
85088 Vohburg
info@b1-systems.de
Tel.: +49 (0) 84 57 - 93 10 96