Artikel mit Tag Linux

In vim mit root-Rechten speichern

Ist euch das nicht auch schon passiert, dass ich mit vim eine Datei editiert habt und dann beim Speichern bemerkt, dass ihr keine Schreibrechte auf die Datei habt?

Jochen Lillich hat in seinem Blog einen Tipp, wie ihr die Datei mit root-Rechten speichern könnt:

:w !sudo tee %

Dieser Befehl speichert die Datei, danach könnt ihr sie mit :q! verlassen und die Warnungen ignorieren, die Änderungen sind dennoch gespeichert.

Alles weitere zur Funktionsweise des Befehls erfahrt ihr in Jochens Blogpost.

Probleme mit minicom und einem Aruba 6300 Switch

Zu meinem Job beim Schulträger unseres Landkreises gehört auch die Administration der Netzwerkinfrastruktur in den Schulen. Die von uns genutzten Aruba 6300 Switches haben einen seriellen Konsolenanschluss im USB-C Format. Über diesen Port führe ich normalerweise routiniert die Konfiguration der Switches mit meinem Kubuntu 22.04 Laptop, einem USB-C Kabel und dem Tool minicom durch.

Nach dem Anschließen des Kabels am Laptop meldet sich der Switch auf der Schnittstelle /dev/ttyACM0 und ich verbinde mit mit minicom -D /dev/ttyACM0 und kann den Switch über die Konsole bedienen.

Diese Routine wurde heute je durchbrochen, als ich nach dem Anschluss des Kabels an meinen Laptop das vertraute Device nicht finden konnte. Stattdessen erstellte Kubuntu das Device /dev/ttyUSB0. Na gut, dann eben flux damit verbunden aber: Nach dem Verbinden mit der Switch-Konsole konnte ich keine Eingaben machen. Die Ausgaben des Switches konnte ich aber problemlos mitverfolgen. Der Versuch mit einem zweiten Switch der gleichen Baureihe ergab das gleiche Ergebnis.

Ein wenig Googeln brachte den Tipp, in den Settings von minicom die “Hardware Flow-Control” auf “Nein” zu setzen und siehe da, nun konnte ich auch wieder Eingaben in der Konsole machen.

Das Problem ist nun zwar praktisch gelöst, allerdings weiß ich noch nicht, worauf diese Änderung des Verhaltens zurückzuführen ist. Da sich an den Switch-Modellen nichts geändert hat, habe ich eine Software-Änderung bei meinem Kubuntu Laptop in Verdacht. Aber vielleicht hat jemand von euch dazu eine Idee, ich bin für sachdienliche Hinweise dankbar.

Terminal-Ausgabe in die Zwischenablage umleiten

Ich bewege mich ja viel und oft im Linux-Terminal, um verschiedene Aufgaben zu erledigen. Manchmal ist es ganz nützlich, wenn man die Ausgabe des Terminals über die Zwischenablage in anderen Programmen weiter verwenden kann. Zwar hat man immer die Möglichkeit, die Ausgabe zu kopieren und mit den gängigen Methoden (Strg-C oder über Menübefehle der Konsolen-Anwendung) in die Zwischenablage zu befördern, allerdings ist das nicht immer praktikabel. Wenn zum Beispiel die Ausgabe so umfangreich ist, dass sie den Inhalt einer Bildschirmseite überschreitet, wird das Markieren ziemlich mühsam.

Abhilfe schafft hier das kleine Tool xclip, das ihr auf den meisten Distributionen über den jeweiligen Paketmanager installieren könnt. Danach habt ihr die Möglichkeit, die Ausgabe im Terminal auf xclip umzuleiten.

So leitet

ls | xclip -sel clip

die Ausgabe des ls-Befehls direkt in die Zwischenablage und ihr könnt das systemweit in jeder Anwendung wieder einfügen. xclip kann noch ein paar Dinge mehr, hierzu empfehle ich die Manpage.

Iptables Firewall - Wann beim Portforwarding ein DNAT nicht genug ist

Betreibt man Firewalls auf einem Linux-Router mit iptables, kommt man früher oder später in die Verlegenheit, Portforwarding machen zu müssen. Schaut man dann einschlägige Anleitungen im Internet an, findet man solche, die das allein über ein DNAT (Destination Natt ing) in der Prerouting-Chain lösen, manche wiederum sagen, dass man unbedingt auch ein SNAT (Source Natting) in der Postrouting-Chain machen muss, sonst würde das überhaupt nicht funktionieren.

Ich hatte das Problem letztens und möchte das hier mal etwas aufdröseln, damit ich beim nächsten mal nicht wieder Schaubildchen malen muss. Vielleicht hilft es ja auch dem ein oder anderen von euch, wenn ihr mal einen ähnlichen Routing-Fall lösen müsst.

Ich gehe in diesem Artikel nicht auf die Grundlagen des Routings und Firewallings ein, sondern möchte nur den oben erwähnten speziellen Fall genauer beschreiben.

Zunächst schauen wir uns grob an, wie so ein IP-Paket die einzelnen Chains (Ketten) unserer Firewall durchläuft.

Schematische Darstellung der Routing-Chains

Wie man sieht, haben wir zwei NAT-Chains (Network Adress Translation), nämlich die Prerouting- und die Postrouting-Chain. Jedes IP-Paket enthält unter anderem eine Absender-IP und eine Empfänger-IP. In diesen beiden Ketten kann iptables diese beiden Adressen umschreiben, nämlich die Empfänger-Adresse im Prerouting und die Absender-Adresse im Postrouting. Das besondere ist, dass diese Adressen, sobald die Antwort auf so ein verändertes Paket wieder bei unserem Router ankommen, auch wieder zurück übersetzt werden können.

Unsere Router zu Hause machen das übrigens ständig, wenn wir im Internet surfen. Bei allen Paketen wird die private IP-Adresse aus unserem Heimnetz in die öffentliche IP-Adresse ausgetauscht, die wir von unserem Provider erhalten haben. Kommt eine Anwort zurück, tauscht der Router die Adresse wieder zurück und sendet die Internetinhalte an das Gerät in unserm LAN, das sie auch angefordert hat.

Diese spezielle Form des SNAT in der Postrouting-Chain nennt man auch Masquerading.

Doch nun zu einem etwas komplexeren Setting, bei dem wir spezielle Adressumschreibungen benötigen, die über ein pauschales Masquerading hinaus gehen.

Wir haben als Beispiel eine Firewall mit drei Netzwerkkarten, eine (eth0) zeigt ins Internet mit einer öffentlichen IP-Adresse 1.2.3.4, eine Karte (eth2) zeigt in unser internes Firmennetz und hat die IP 192.168.1.1/24. Die dritte Karte (eth1) mit der IP 192.168.10.1/24 zeigt auf ein Netzwerk, in dem zwei Webservices laufen, die aus dem Internet erreichbar sein sollen.

Alle Pakete aus dem Internet, die auf für die IP-Ports 80 und 443 ankommen, sollen auf einen Reverse-Proxy weitergeleitet werden, der dann den Verkehr weiter an die zuständigen Rechner für die jeweiligen Services verteilt.

Das ganze schaut schematisch so aus:

Schematische Darstellung des Beispiel-Netzwerks

Die beiden Adressen “service_a.example.com” und “service_b.example.com” werden vom DNS auf die IP-Adresse 1.2.3.4 geleitet. Also müssen unsere Firewall anweisen, alle Pakete, die auf der IP-Adresse 1.2.3.4 auf Port 80 und 443 ankommen, an unseren Reverse-Proxy zu forwarden.

Dazu müssen wir zunächst das Forwarding für diese Ports in der FORWARD-Chain erlauben:

iptables -A FORWARD -i eth0 -o eth1 -p TCP --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p TCP --dport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Dann kommt das eigentliche Portforwarding, also das Umschreiben der Empfängeradresse im Paket.

iptables -t nat -A PREROUTING -d 1.2.3.4 -p TCP --dport 80 -j DNAT --to-destination 192.168.10.10:80

iptables -t nat -A PREROUTING -d 1.2.3.4 -p TCP --dport 443 -j DNAT --to-destination 192.168.10.10:443

Das funktioniert zunächst für alle Pakete, die aus dem Internet (hier als Beispiel von der IP-Adresse 3.4.5.6) kommen. Die Empfänger-Adresse wird auf den Proxy umgeschrieben:

Source          Dest
3.4.5.6         1.2.3.4  -> DNAT -> 192.168.10.10

und auf dem Rückweg:

Source          Dest
3.4.5.6         1.2.3.4  <- DNAT <- 192.168.10.10

Der Absender 3.4.5.6 erhält also als Antwort auf sein Paket, dass mit der Empfängeradresse 1.2.3.4 abgesendet wurde.

Das gleiche funktioniert auch, wenn ein Rechner aus dem internen Netz ein Paket an einen unserer beiden Services sendet. Der Router sorgt auch hier wieder für den Aus- und Zurücktausch der Empfänger-Adresse des Pakets.

Jetzt kommen wir aber zu einem Fall, in dem das so nicht funktioniert. Nehmen wir einmal an, der Rechner “service_a.example.com” muss ein IP-Verbindung zu “service_b.example.com” herstellen. Da “service_b.example.com” auch im internen Netz mit der IP 1.2.3.4 übersetzt wird, geht unser IP-Paket also an unseren Router, der auch wieder brav die Empfängeradresse austauscht.

Source          Dest
192.168.10.50   1.2.3.4  -> DNAT to 192.168.10.10

Das Paket geht zunächst ordnungsgemäß an unseren Reverse-Proxy, der an 192.168.10.60 (service_b) vermittelt. Nun soll der Proxy eine Antwort an den Absender schicken und hat folgendes IP-Paket vorliegen:

Source          Dest
192.168.10.50   192.168.10.10

Ah, das Paket kommt von einer IP aus dem eigenen Netz, die ganz ohne Routing direkt erreicht werden kann, also wird die Antwort direkt an 192.168.10.50 gesendet.

Dieser Rechner kann aber mit der Antwort nichts anfangen, denn er hat nie ein Paket an die IP 192.168.10.10 gesendet, sondern an 1.2.3.4.

Also wird die Antwort verworfen, die IP-Verbindung kommt in diesem Fall nicht zustande. Hier haben wir den Fall, in dem ein DNAT für das Portforwarding nicht ausreicht.

Um dafür zu sorgen, dass die Antwort den gleichen Weg nimmt wie das Ursprungspaket auf dem Weg zum Reverse-Proxy und damit der Router die Daten des Pakets wieder auf den ursprünglichen Wert zurücksetzt, müssen wir in der Postrouting-Chain die Absender-Adresse des Pakets auf die IP des Routers ändern:

iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -d 192.168.10.10 -p tcp --dport 80 -j SNAT --to-source 192.168.10.1

iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -d 192.168.10.10 -p tcp --dport 443 -j SNAT --to-source 192.168.10.1

Zusätzlich benötigen wir an dieser Stelle eine Forwarding-Regel, die das Forwarding auch von eth1 zu eth1 erlaubt:

iptables -A FORWARD -i eth1 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Dadurch stellen wir sicher, dass das Paket bei Beantwortung zunächst wieder an den Router geschickt wird, der dann die IP-Adressen wieder auf die alten Werte korrigiert.

Als Regel kann man festhalten, dass wir immer dann eine SNAT-Regel für das Portforwarding benötigen, wenn durch das umschreiben der Empfänger-Adresse (DNAT) das IP-Paket so geändert wird, dass sich der Routing-Pfad auf dem Rückweg so ändert dass der Router, der das Natting durchgeführt hat, nicht mehr beteiligt ist. Dann ist es notwendig, auch die Absenderadresse so zu manipulieren, dass das Paket den gleichen Weg zurück nimmt und am NAT-Router wieder umgeschrieben wird.

In Firefox die eingebaute Screenshot-Funktion nutzen

Beim Surfen in den Weiten des World Wide Web kommt man immer mal in Verlegenheit, von einem Teil einer Webseite einen Screenshot zu machen. Sei es ein Textausschnitt oder auch ein Foto oder eine Grafik, die man für später archivieren oder auch mal schnell per Mail oder Messenger mit anderen teilen möchte. Manchmal möchte man vielleicht sogar einen Screenshot von der gesamten Webseite machen.

Wahrscheinlich hat jeder von uns im Betriebssystem ihrer/seiner Wahl ein Lieblingstool, mit dem er oder sie Screenshots anfertigt. Allerdings bringt die Desktop-Version des Browsers Firefox eine eingebaute Screenshot-Funktion mit, die ein paar komfortable Features hat und für einen schnellen Screenshot während des Surfens eine gute Alternative sein kann.

Aufruf der Funktion

Aufgerufen wird die Funktion im Firefox mit der Tastenkombination STRG-Shift-S (am Mac ist es CMD-Shift-S). Alternativ könnt ihr auch über das Menü "Weitere Werkzeuge" - "Symbolleiste anpassen" das Icon "Bildschirmfoto" in eurer Symbolleiste hinzufügen und den Modus darüber aufrufen (Danke an Dirk für den Hinweis in den Kommentaren.).

Screenshot-Modus des Firefox

Nach der Betätigung der Tastenkombination hat man vier Optionen, einen Screenshot anzufertigen.

Möglichkeit 1: Seitenelemente kopieren

Fahrt ihr mit der Maus nun über die Webseite, werden Seitenelemente der Webseite (Divs, Grafiken, Testelemente, Überschriften usw.) umrahmt. Mit einem Mausklick wählt ihr den jeweils markieren Bereich für den Screenshot aus. An der Auswahl habe ihr bei allen vier Optionen die Funktionen zum Kopieren in die Zwischenablage oder den Download des Screenshots als PNG-Datei zur Verfügung. Ein Klick auf das “X” beendet die Screenshot-Funktion.

Markierung eines Seitenelements

Möglichkeit 2: Einen Bereich für den Screenshot markieren

Mit gedrückter Maustaste könnt ihr im Screenshot-Modus einen beliebigen Bereich der Webseite markieren und danach davon einen Screenshot anfertigen.

Freie Markierung eines Webseitenbereichs

Möglichkeit 3: Den sichtbaren Bereich auswählen

Oben rechts erscheinen im Screenshot-Modus zwei Auswahl-Buttons. Mit dem Rechten Button wählt ihr den gesamten sichtbaren Bereich im Browserfenster für den Screenshot aus.

Buttons zur Auswahl des sichtbaren Bereichs und der gesamten Webseite

Möglichkeit 4: Gesamte Webseite auswählen

Eine besonders interessante Option bietet der linke der beiden Buttons in der rechten oberen Ecke. Mit diesem Button wählt ihr die gesamte Webseite für einen Screenshot aus, also auch den Bereich, der momentan nicht im Browserfenster zu sehen ist.

Screenshot der gesamten Homepage von hommel-net.de

Fazit

Die eingebaute Screenshot-Funktion von Firefox bietet einen nützlichen Funktionsumfang und ist komfortabel zu bedienen. Für den schnellen Screenshot zwischendurch ziehe ich die Funktion mittlerweile einem separatem Programm für Screenshots vor.

Heizungsstatus mit Bordmitteln überwachen

Heizungen gehen ja vorzugsweise im Winter kaputt, wenn es draußen kalt ist. Unsere betagte Heizung hat in den letzten Tagen auch angefangen, etwas rumzuspinnen. Ist wohl alles etwas verkalkt und deshalb greift immer mal wieder die Notabschaltung für die Abgastemperatur. Und weil man das in der Wohnung immer erst bemerkt, wenn es empfindlich kälter in den Räumen wird, waren in den letzten Tagen regelmäßige Kontrollgänge in den Heizungskeller an der Tagesordnung.

Da muss man doch auch was mit IT machen können, dachte ich mir und habe mich heute daran gemacht, mit der hier vorhandenen Hardware etwas zu basteln, das mir das Leben bis zur Behebung des Problems (vermutlich durch einen Tausch der Heizung) erleichtert.

Im Heizungskeller gibt es eine Steckdose und es ist dunkel. Die Heizung selbst hat keine Schnittstellen, die man nutzen könnte. Das waren die Voraussetzungen. Immerhin gibt es WLAN-Empfang dort.

Die Heizung hat eine LED, die normalerweise grün leuchtet und im Störungsfall rot blinkt. Da könnte man doch was mit anfangen. Ich habe mir also einen alten Mini-PC mit eingebautem WLAN geschnappt und eine momentan nicht benötigte Webcam von K2. Auf dem PC flux eine Debian-Minimalinstallation gemacht, die Webcam angeschlossen und das ganze hochprofessionell vor der LED positioniert.

Unsere Gastherme mit der mittels Klebeband angebrachten Webcam vor der LED.

Um mit der Webcam Bilder aufzunehmen, kommt das Programm fswebcam zum Einsatz, das mir schon beim Projekt “Twitternde Webcam” in 2016 gute Dienste geleistet hat. Ein Mini-Bash-Skript macht minütlich ein Foto mit der Webcam und lädt dieses auf den hier im internen Netzwerk stehenden Webserver. Eine sehr, sehr rudimentäre “Webseite” zeigt das Bild an. Fertig ist die Fernüberwachung, mit der ich den Status der Heizung sehe, ohne in den Keller zu laufen.

Screenshot von der Webseite mit dem Foto von der LED

Kleines Upgrade des "Hauptrechners"

Bild eines Monitors mit KDE-Plasma-Oberfläche

Wer wie ich beruflich und privat viel mit IT zu tun hat, wird es kennen. Es steht eine Menge Hardware in der heimischen Wohnung herum. Aber es gibt auch diesen einen "Hauptrechner", jenes Arbeitstier, auf dem man die wichtigen Dinge des Adminlebens erledigt und an dem man möglichst wenig verändert und das immer stabil laufen muss.

Dieser Rechner ist bei mir ein relativ altes Gerät, eine Lenovo ThinkStation aus dem Jahr 2013, auf dem schon diverse Kubuntu-Versionen residierten. Wie es sich für so ein Produktivgerät gehört, ist dort immer eine LTS-Versionen dieser Distribution mit verlängertem Support-Zyklus installiert, momentan die 20.04. Im Rechner werkelt ein 4-Kern Xeon Prozessor, 16GB Hauptspeicher und eine drehende 1TB Festplatte. Der Rechner wird nicht zum Spielen genutzt, daher reicht die Leistung und Performance für mich noch locker aus.

Was mich zunehmend störte, war das Display-Setup, das aus zwei alten 19-Zöllern bestand. Diese beiden alten Geräte habe ich nun durch einen 27" Display von Lenovo mit QHD-Auflösung ersetzt. Ein Problem dabei war, dass die bisher verwendete Onboard-Grafikchip der ThinkStation nur eine maximale Auflösung von 1900x1200 schaffte, daher musste zum Display noch eine neue Grafikkarte her. Wichtig war mir hierbei, dass die neue Karte keinen zusätzlichen Lärm macht, also passiv gekühlt ist. Meine Wahl viel dann auf eine Nvidia Geforce GT710 von Asus mit 2 GB Speicher und vier HDMI Ausgängen, die nun im neuen Rechner unhörbar vor sich hin werkelt und das neue Display in voller Pracht mit 2560x1440 Pixeln befeuert.

Und wie immer, wenn etwas neu ist, macht es natürlich auch wieder mehr Spaß, es zu benutzen und damit zu arbeiten. ;-)

Der Plan ist, demnächst noch die drehende Festplatte durch eine SSD zu ersetzen, denn das bringt ja auch immer noch etwas mehr Performance. Außerdem ist eine so alte drehende Platte auch immer ein kleines Risiko. Natürlich sind Backups vorhanden, aber Festplatten fallen meistens dann aus, wenn man es am wenigsten gebrauchen kann. Ihr kennt das.

Ansonsten bin ich mit der "alten Kiste" immer noch sehr zufrieden und hoffe, dass sie mir noch ein paar Jahre treue Dienste leisten wird.

Telefonieren unter Linux mit Linphone und der Fritzbox

In Zeiten der IP-Telefonie ist es praktisch, dass man auch mit einem entsprechenden Client direkt ohne ein zusätzliches Telefon direkt vom Rechner telefonieren kann. Auch unter Linux gibt es die sogenannten SIP-Clients, mit denen man über einen SIP-Provider telefonieren kann.

Wenn ihr zu Hause einen Router habt, der auch IP-Telefonie beherrscht, könnt ihr diesen oftmals auch als SIP-Provider nutzen. Ich habe mal aufgeschrieben, wie das mit einer Fritzbox 7590 und dem Programm Linphone unter Linux funktioniert.

Telefonie-Gerät auf der Fritzbox einrichten

Als erstes muss ein neues Telefoniegerät auf der Fritzbox eingerichtet werden. Im Menü der Fritzbox (in meinem Fall eine 7590) geht ihr auf den Punkt "Telefonie"-"Telefoniegeräte" und wählt die Schaltfläche "Neues Gerät einrichten".

In der nächsten Maske "Telefon" auswählen und auf "Weiter" klicken.

In der nächsten Maske müssen wir der Fritzbox sagen, dass es sich um ein IP-Telefon handelt. Außerdem könnt ihr einen Namen für das Gerät vergeben.

Nun geben wir einen Benutzernamen und ein Kennwort ein. Diese Daten müssen wir uns merken, um später den Client einrichten zur können.

Wenn ihr über euren Internetprovider mehrere Rufnummern zur Verfügung gestellt bekommt, könnt ihr nun auswählen, mit welcher Rufnummer euer Client später raustelefonieren soll.

Ebenso könnt ihr festlegen, ob euer Client bei allen ankommenden Rufnummern klingeln soll oder nur bei bestimmten. Das ist zum Beispiel bei Homeoffice praktisch.

Die nächste Maske zeigt nochmal alle Einstellungen an und mit "Übernehmen" wird die Anlage des Gerätes gestartet.

Zum Schluss möchte die Fritzbox noch, dass ihr euch autorisiert, dass kann entweder über eine Zahlenkombination erfolgen, die ihr an einem bereits an die Fritzbox angeschlossenen Telefon eingebt, oder über das Drücken einer Taste auf der Fritzbox selbst.

Die Vorbereitungen auf der Fritzbox sind nun abgeschlossen und wir können den Linphone-Client einrichten.

Linphone einrichten

Linphone ist in den gängigen Distributionen über die jeweiligen Installationswerkzeuge installierbar. Bei den verschiedenen Ubuntu-Derivaten auch bequem über die Befehlszeile mit:

sudo apt install linphone

Beim ersten Start begrüßt uns ein Einrichtungsassistent, den wir natürlich gern mit "Forward" starten.

In der nächsten Maske den Punkt "Ich habe bereits ein SIP-Konto und möchte es jetzt benutzen" wählen.

Jetzt kommen Benutzername und Kennwort aus der Fritzbox-Einrichtung zum Einsatz. Im Feld "Domäne" tragt ihr die IP-Adresse eurer Fritzbox ein. Mit Klick auf "Apply" wird das Konto eingerichtet.

Wenn alles richtig eingegeben wurde kann man jetzt über das eingerichtete Konto in Linphone bequem vom Linuxrechner telefonieren. Am besten verwendet man dazu natürlich ein entsprechendes Headset.

Debian 10 "Buster" veröffentlicht

Debian 10 Logo

Das Debian-Projekt hat nach zwei Jahren die neue stabile Version 10 der universellen Linux-Distribution veröffentlicht. Seit gestern kann das neue Stable-Release mit dem Codenamen "Buster" offiziell heruntergeladen werden.

Obwohl Debian meist gern auf Servern ohne grafische Benutzeroberfläche genutzt wird, bringt Buster mehrere Deskop-Umgebungen mit:

  • Cinnamon 3.8
  • GNOME 3.30
  • KDE Plasma 5.14
  • LXDE 0.99.2
  • LXQt 0.14
  • MATE 1.20
  • Xfce 4.12

Die GNOME-Umgebung verwendet im neuen Release erstmals des Wayland-Display-Server als Standard. Xorg ist aber weiterhin installiert und kann beim Login ausgewählt werden.

Das Zugangskontroll-Framework AppArmor ist installiert und eingeschaltet. Bei der Netzwerkfilterung stehen als Befehlsschnittstelle sowohl nftables als auch iptables zur Verfügung. Ein weiteres Sicherheitsfeature sind die Reproducable Builds. Hierdurch ergeben 91% der Quellpakete beim Selbstkompilieren identische Binärpakete.

Die UEFI-Unterstützung wurde verbessert und auch das treiberlose Drucken sollte nun problemlos funktionieren.

Zahlreiche Softwarepakete wurden aktualisiert, obwohl traditionell bei Debian aufgrund des Entwicklungsprozesses nicht die allerneuesten Pakete zum Einsatz kommen. Dafür erhält man eine sehr stabile und gut getestete Distribution.

Alle weitern Informationen, auch die Download- und Update-Möglichkeiten, könnt ihr im Release-Artikel des Debian-Projekts finden. Viel Spass beim Installieren und Updaten. :-)

S9y-Camp 2019: Wie man Nogger aufreißt

Kein S9y-Camp ohne Tux im Sessel auf dem Zimmer im Linuxhotel

Du meine Güte, vor lauter Migrationsgedöns an der Arbeit bin ich ja noch gar nicht dazu gekommen, über das diesjährige Treffen der Serendipity-Community zu schreiben, an dem ich vom 26. bis 28. April in diesem Jahr wieder teilnehmen konnte. Here we go.

Das Treffen richtet sich nicht nur an Entwickler, sondern ausdrücklich auch an Anwender der besten Blogsoftware der Welt, zu denen mich auch zähle. Los ging es wie immer am Freitag Abend. Ab 18 Uhr trudelten die - in diesem Jahr leider wenigen - Teilnehmer ein. So waren schließlich wieder alte Bekannte zusammen :-). Leider mussten wir in diesem Jahr schon wieder auf Dirk verzichten, der das Treffen ursprünglich mal iniziiert hat. Leider konnte er nicht zu uns stossen. Auch unser "Chef" und Hauptentwickler Garvin konnte es nicht einrichten, trotzdem hatten wir uns vorgenommen, an diesem Wochenende wieder einiges an der Weiterentwicklung von Serendipity zu arbeiten.

Essen und Trinken

Aber auch die geselligen Abende im Linuxhotel bei dem einen oder andern Glas Rotwein bzw. Flasche Bier und viel zu viel zu Essen sind inzwischen schon Tradition und runden das Event immer zu einer richtig schönen Veranstaltung ab. Außerdem ist Support untereinander ein wichtiges Thema in unserer Community. An diesem Wochenende konnten wir einen Teilnehmer besonders unterstützen, indem wir ihn in das ordnungsgemäße Öffnen von Nogger-Verpackungen einweisen konnten und wir können mit einigem Stolz sagen, dass er es am Ende des Wochenendes nahezu perfekt beherrschte.

Ich kann also jedem Nutzer von Serendipity (auch wenn man es erst noch werden möchte ;-) ) oder abitionierten Entwickler empfehlen, an unserem S9y-Camp im nächsten Jahr mal teilzunehmen, es lohnt sich wirklich.

Ergebnisse

Was hat sich während des Wochenendes an Serendipity getan? Das wichtigste Ergebnis dürfte die neu veröffentlichte Beta-Version 2.3-beta1 sein, die vorrangig die Kompatibilität zur PHP-Version 7.2 und 7.3 herstellt (die aktuelle stabile Version ist nur bis PHP7.1 kompatibel). Wir haben am Wochenende zwar viel getestet, aber zu einem Beta-Test gehört natürlich auch eine gewisse Anzahl von Nutzern, die die Version auch auf ihren Blogs "in the wild" testen. Also, wenn ihr experimentierfreudig seid, nichts wie ran an die Beta.

Weitere neue Funktionen sind responsive Bilder und das leichtere Erzeugen von Bildergallerien.

Fazit

Aufgrund der wenigen Teilnehmer konnten natürlich nur wenige Dinge umgesetzt werden. Auch deshalb gab es dieses mal wahrscheinlich auch etwas intensivere und leidenschaftlichere Diskussionen als sonst. Trotzdem hat mir das Treffen wieder viel Spaß gemacht und mich - wie jedes Jahr - wieder motiviert, etwas mehr Zeit in das Opensource-Projekt Serendipity zu investieren und das wenige, dass ich als technisch interessierter Nutzer und Nicht-Entwickler beitragen kann, auch beizutragen. Denn schließlich möchte ich noch viele Jahr Freude an meinem kleinen Blog und seiner Blogengine haben.

Bis zum nächsten Jahr und vielen Dank an das Linuxhotel für die Gastfreundschaft und das tolle Angebot für Opensource-Communitys.

In other news