Skip to content

Webspace-Inventar 2017 ...

Dieser Artikel ist eine Antwort auf den Artikel von Thomas zum Thema.

Auf meinem Server laufen die folgenden Webapplikationen, Reihenfolge ist alphabetisch und sagt nichts über die Wertigkeit aus.

  • DokuWiki ist die Wikisoftware, die ich benutze, wenn ich einmal ein Wiki brauche. Kommt ohne Datenbank zurecht.
  • Das Freie Software Fotobuch ist eine Zusammenstellung von Personen und deren Lieblingssoftware.
  • Gitea stellt mir einen Gitserver mit grafischer Oberfläche zur Verfügung.
  • GNUsocial bietet eine Instanz des freien sozialen Netzes.
  • Kanboard ist eine sehr einfache, aber dafür leistungsfähige Umsetzung eines Kanboards.
  • Netdata - sehen was läuft.
  • Nextcloud nutze ich sowohl als Filesynchronisationslösung mit automatischem Upload von Handy-Photos wie auch zur Synchroniation des Kalenders und der Kontakte mit dem Handy.
  • Piwik aks Webabanalysewerkzeug.
  • phpMyAdmin, wenn ich "mal schnell" etwas mit der Datenbank machen muss.
  • Roundcube ist mein Webmailer.
  • RSS-Bridge wandelt beispielsweise Tweets von Twitter in einen RSS-Feed.
  • Serendipity ist die Blogsoftware, die ich benutze.
  • Tiny Tiny RSS ist mein Feedreader (News+ mit entsprechendem Plugin auf dem Android-Tablet).
  • Wallabag - hier landen alle längeren Artikel, die ich noch lesen will (auch über ein Plugin in Tiny Tiny RSS).
  • YOURLS ist ein URL-Verkürzer, den ich nur noch aus historischen Gründen benutze.


Dazu kommen noch kleinere Dienste, die kein Webfrontend haben.

An dieser Stelle möchte ich nicht vergessen, Let's Encrypt und ACMEfetch (Anleitung hier im Blog) zu erwähnen, die dafür sorgen, dass alles, was Web ist, über https bereitgestellt werden kann.

Neuinstallation Fedora 26 ...

fedora Durch die verschiedenen sozialen Netzwerke, in denen ich mich bewege, schwappen gerade Anleitungen wie man von Fedora 25 auf Fedora 26 aktualisiert, hier ein Beispiel.

Ich werde es so halten "wie schon immer" (Ubuntu) und mit jedem Linux, das ich bis jetzt benutzt habe, ich werde meinen Rechner neu installieren.

Der Grund ist schon seit Jahren der gleiche, nämlich Datenhygiene: Da ich viel mit Software experimentiere und viele Programme ausprobiere, nutze ich die Neuinstallation, um mich von nicht mehr benötigten Altlasten und nicht mehr gebrauchten Konfigurationsdateien zu trennen.

Die Installation ist für das kommende Wochenende geplant.

tasksh review ...

taskwarrior Diesen Artikel habe ich schon sehr lange in der Pipeline. Das aktuelle Release von tasksh ist ein guter Anlass ihn auch zu veröffentlichen.

"Eigentlich" (tm) ist tasksh eine Hilfe für Tippfaule, die nicht immer das Kommando task tippen wollen, wenn sie mit ihren Aufgaben arbeiten.

Aber tasksh hat ein Killerfeature und das ist review, das Kommando tut genau das, was der Name auch impliziert. Es hilft Euch, regelmässig Eure Aufgabenliste durchzusehen. Das Feature gibt es seit Version 1.1.0, aktuell ist seit heute Nacht die Version 1.2.0.

Dazu speichert es in einem User defined Attribute den Zeitpunkt, wann das letzte Review stattgefunden hat und nimmt sich die Aufgabe erst dann wieder vor, wenn eine Woche (konfigurierbar!) vergangen ist.

Wenn nur Zeit ist, sich beispielsweise fünf Aufgaben anzusehen, dann kann man review auch mit dem Parameter 5 aufrufen, um die Anzahl der durchzusehenden Aufgaben zu beschränken.

Da ich gerne meine offenen Aufgaben einmal pro Woche durchschauen möchte, nutze ich nur aus diesem einen Grund tasksh.

while true ...

linux Neben vielen anderen Pluspunkten ist die Shell etwas, was ich an Linux besonders mag.

Bis vor kurzem habe ich meine LaTeX-Präsentationen und andere Dokumente mittels Makefile und einer Endlos-Schleife entwickelt. Dokumentbetrachter wie beispielsweise Okular oder Evince (Adobe Reader kann es nicht) erlauben es, dass eine gerade angeschaute Datei verändert werden darf und zeigen die Veränderungen auch direkt an.

Dazu benutze ich ein (nahezu) generisches Makefile (make clean löscht beispielsweise alle Temporärdateien):
.PHONY: clean
.DEFAULT_GOAL := lessons-learned.pdf

clean:
        find . \( -name '*.dvi' -o -name '*.aeb' -o -name '*.aux' -o -name '*.idx' -o -name '*.ilg' -o -name '*.ind' -o -name '*.ivz' -o -name '*.ivz.xml' -o -name '*.log' -o -name '*.pic.xml' -o -name '*.toc' -o -name '*.nav' -o -name '*.out' -o -name '*.snm' -o -name '*.vrb' -o -name '*~' -o -name '*.pdfpc' -o -name '*.fls' -o -name '*.fdb_latexmk' -o -name '*.xdv' \) -delete

lessons-learned.pdf:    *.tex *.png # *.jpg
        xelatex lessons-learned
        xelatex lessons-learned
        xelatex lessons-learned


Und der Rest wird durch eine Endlossschleife erledigt:
while : # oder while true
do
  make -q || make
  date
  sleep 5
done


Allerdings hat sich dieses Verfahren erledigt, nachdem ich bei Sujeevan von latexmk gelesen habe.

Seit dem reicht ein:
latexmk -pvc -xelatex lessons-learned.tex
make clean

Das Open-Source-Dilemma ...

gedanken Wenn man - wie beispielsweise ich - sehr (sehr) viel Open-Source-Software benutzt, kommt man irgendwann zu dem Punkt, dass man auch selber etwas beitragen möchte. Das ist viel leichter als man gemeinhin denkt. Aus diesem Grund habe ich im letzten Jahr auf der OpenRheinRuhr einen dazu passenden Vortrag gehalten.

Hier sind die Folien dazu (JavaScript):



Es gibt da leider zwei Dilemmata:

Aus Sicht des potentiellen Unterstützers: Gerade meine Fähigkeiten werden in dem Projekt, dass ich gerne unterstützen möchte, nicht benötigt. Gut, dann kann man sich immer noch in einem anderen Projekt engagieren, nur da dann leider nicht mit so viel Herzblut. Aber, wie im Vortrag erwähnt, es lohnt sich immer, Werbung für das Lieblingsprojekt zu machen.

Ärgerlich hier ist, dass man darüber nur sehr bedingt (kaum) Anerkennung bekommt und gerade diese Anerkennung eine der grössten Triebfedern ist.

Aus Sicht des Projektes ist es umgekehrt leider häufig so, dass gerade das eigene Projekt nicht so viel Liebe ab bekommt, wie man gerne hätte oder dass die gebrauchten Fähigkeiten so speziell sind, dass nur wenige Menschen beitragen können. Da ist dann leider auch schwierig, die eigenen Qualitätsmassstäbe herunter zu schrauben, um mehr Unterstützer zu bekommen.

Die Alternative wäre, jeden beitragen zu lassen und dann als Qualitätsverwalter die Leute in die richtige Richtung zu stossen. Das birgt wiederum die Gefahr, dass es mir dann irgendwie selber keinen Spass mehr macht.

Was also tun? Stabile Seitenlage?

Ich habe dafür keine Lösung, zumindest keine gute, die alle zufrieden stellt. Ich selber nutze privat (fast) ausschliesslich Open-Source-Software, kann mich aber "nur" in drei Projekten engagieren, obwohl es alle anderen auch verdient hätten.

Wenn Ihr Vorschläge und Ideen habt, schreibt sie gerne in die Kommentare.

GNU time ...

In den "Core Utilities" der meisten Linuxdistributionen findet sich das Tool GNU time (ja, die Homepage ist ein bisschen, nun, ..., nichtssagend).

Das time-Kommando als eingebautes Kommando der Bash (oder anderer Shells) kennen viele, auch die charakteristische Ausgabe:

$ time bash
$ exit

real    0m2.608s
user    0m0.137s
sys     0m0.326s


Ein wenig gesprächiger ist GNU time:

$ /usr/bin/time bash
$ exit
0.18user 0.37system 0:04.17elapsed 13%CPU (0avgtext+0avgdata 3736maxresident)k
0inputs+80outputs (0major+96587minor)pagefaults 0swaps


Im "verbose-Modus" kann man dann aber schon richtig ordentlich Informationen abgreifen:

$ /usr/bin/time -v bash
$ exit
        Command being timed: "bash"
        User time (seconds): 0.11
        System time (seconds): 0.30
        Percent of CPU this job got: 12%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.36
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 3732
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 96806
        Voluntary context switches: 713
        Involuntary context switches: 155
        Swaps: 0
        File system inputs: 0
        File system outputs: 80
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0


Die manpage gibt noch weitere Optionen an.

Pipe Viewer ...

In den letzten Jahren habei sich reichlich viele tar.bz2-Archive mit zum Teil über 100 Gigabytes bei mir angesammelt. Die mussten einmal dringend aufgeräumt werden.

Bei Aufräumen war mir Pipe Viewer eine grosse Hilfe. Na, ja, Hilfe ist vielleicht übertrieben, aber "subjektive Zeitverkürzung" hat auch ihren Wert.

Pipe Viewer macht genau das, was der Name vermuten lässt, es zeigt - unter anderem - den Fortschritt von Pipes an.

$ pv --progress --eta downloads.tar.bz2 | tar xjf -
[>                                                  ]  2% ETA 0:04:02


Der umgekehrte Weg ist komplexer, weil die Grösse der Daten an das Kommando übergeben werden muss.

$ tar cf - Downloads \
| pv --progress --eta --size $(du -bs Downloads | awk '{print $1}') \
| bzip2 -9 > downloads.tar.bz2
[==============>                                    ] 31% ETA 0:08:42


Weitere sehr gute Beispiele finden sich auf der verlinkten Homepage.

Supportzeiträume ...

linux Weil ich ab und zu mal danach gefragt werde, habe ich einmal die Supportzeiträume gängiger paketbasierter Linuxdistributionen zusammengesucht.

Kritik und Korrekturen sind ausdrücklich erwünscht.

Bei Korrekturen wäre ein offizieller Link sehr hilfreich

Eingeschränkter Support:

Eingeschränkter Support bedeutet insbesondere, dass nicht alle Pakete unterstützt werden.

Bei Debian LTS sind nicht alle Pakete enthalten. Bei Red Hat Enterprise Linux wird eine ELP (Extended Life Phase) Lizenz benötigt, um weiteren eingeschränkten Support zu bekommen, SUSE erfordert ein Extended Support Package. Bei Debian und OpenSUSE wird der langfristige Support über ein separates Team gewährleistet und nicht vom Securityteam der jeweiligen Distribution.

Überblick:




















Version: Release: Support: Limited Support:
Debian 7, Wheezy (oldstable) 04.05.2013 24.04.2016 05.2018
Debian 8, Jessie (stable) 25.04.2015 ca 04.2018 05.2020
Ubuntu 12.04 LTS, Precise Pangolin 26.04.2012 26.04.2017 ESM
Ubuntu 14.04 LTS, Trusty Tahr 17.04.2014 04.2019
Ubuntu 16.04 LTS, Xenial Xerus 21.04.2016 04.2021
Ubuntu 16.10, Yakkety Yak 13.10.2016 04.2017
CentOS 6 10.07.2011 30.11.2020
CentOS 7 07.07.2014 30.06.2024
Red Hat Enterprise Linux 5, Tikanga 14.03.2007 31.03.2017 31.03.2020
Red Hat Enterprise Linux 6, Tikanga 10.11.2010 30.11.2020 30.11.2023
Red Hat Enterprise Linux 7, Tikanga 10.06.2014 30.06.2024 30.06.2027
openSUSE Leap 42.1 04.11.2015 05.2017
openSUSE Leap 42.2 16.11.2016 ca 05.2018
SUSE Linux Enterprise Server 11 23.03.2009 31.03.2019 31.03.2022
SUSE Linux Enterprise Server 12 27.10.2014 31.10.2027 31.10.2027
Fedora 24 21.06.2016
Fedora 25 22.11.2016


Standard-Support-Zeiträume:

Debian supported bis "next stable + 1 Jahr", LTS bis fünf Jahre nach Erscheinen (Releasezyklus "fertig, wenn es fertig ist").

Ubuntu supported bis neun Monate nach Erscheinen, LTS fünf Jahre nach Erscheinen. Release alle sechs Monate, LTS-Versionen alle zwei Jahre. Seit neuestem bietet Ubuntu eine Extended Security Maintenance für LTS-Versionen (Link in der Tabelle oben), die käuflich erworben werden kann. Danke Mario!

CentOS bis zehn Jahre nach Erscheinen des korrespondierendes RHEL Releases.

RHEL bis zehn Jahre nach Erscheinen, ELP bis 13 Jahre nach Erscheinen.

openSUSE, Major Release soll mindestens 36 Monate unterstützt werden, Minor-Releases bis 18 Monate nach Erscheinen.

SLES analog RHEL.

Fedora, Support bis zum Erscheinen des zweiten Nachfolgreleases plus ein Monat, keinen Langzeitsupport, neue Releases alle sechs Monate.

GCC und Environment ...

centos Hier kommt noch ein kleiner Nachtrag zu dem Artikel gestern.

Da ich den aktuellen GCC insbesondere zum Bau von Taskwarrior nutzen und nicht jedes Mal eine neue Shell nutzen möchte, hilft der folgende Weg, das zu verwirklichen:

Wrapper Skript für GCC und C++:

#!/bin/bash
# sclgcc.bash

COMMAND="gcc $@"
scl enable devtoolset-6 "$COMMAND"


#!/bin/bash
# sclc++.bash
COMMAND="c++ $@"
scl enable devtoolset-6 "$COMMAND"


Setzen der Environment-Variablen, die cmake und make benutzen:
export CC=/home/flod2/bin/sclgcc.bash
export CXX=/home/flod2/bin/sclc++.bash


Fertig!

Neuen GCC auf CentOS installieren ...

centos ... und das auch noch von der Distribution supported.

Bei CentOS und RedHat Enterprise Linux wird aktuellere Software durch die Software Collections bereit gestellt. Der Grund dafür, das separat zu machen, ist (beispielsweise) im CentOS Wiki zu finden.

CentOS wird 10 Jahre unterstützt und für die 10 Jahre wird die Kompatibilität von ABIs und APIs garantiert.Um das nicht zu gefährden, werden aktuellere Versionen in einem anderen Verzeichnis installiert und situationsweise aktiviert.

Am Beispiel "neuerer GCC-C++" läuft das wie folgt. Zuerst werden die Software Collections aktiviert und aktualisiert.
$ sudo yum install centos-release-scl
$ sudo yum update


Installation des entsprechenden Pakets mit allen Abhängigkeiten:
$ sudo yum install devtoolset-6-gcc-c++


Welche Software Collections installiert sind, bekommt man mit scl --list heraus.

Anschliessend startet man eine Shell mit aktivierter Software Collection:
$ gcc --version | head -1
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)

$ scl ---list
devtoolset-6

$ scl enable devtoolset-6 bash

$ gcc --version | head -1
gcc (GCC) 6.2.1 20160916 (Red Hat 6.2.1-3)

Trackbacks ...

Mit Trackbacks meldet - grob gesagt und stark vereinfacht - eine Webseite einer anderen Webseite, dass sie von dort einen Artikel verlinkt hat. Eine sehr schöne Erklärung findet sich auf dieser Webseite.

Früher (tm) wurden zwischen Blogs nahezu immer Trackbacks gesetzt, um sich miteinander zu vernetzen, in der Blogosphäre ein Gemeinschaftsgefühl zu entwickeln und die Welt über den Reichtum an Blogs zu informieren.

Früher war alles besser und wir hatten ja sonst nichts ...


Mittlerweile sind Blogs im Mainstream angekommen und Trackbacks werden aus verschiedenen Gründen nicht mehr gesetzt, weil beispielsweise Themes kaputt sind oder Blogs mit statischen Seitencompilern generiert werden.

Wir haben uns bei Serendipity die selbstironische Tagline "Not mainstream since 2002" gegeben, da liegt es natürlich nahe, dass aus diesem Umfeld auch die Frage nach Trackbacks gestellt wird.

Der Ursprung ist der Artikel von Thomas Sind Trackbacks und Pingbacks out?, diese Frage versuchen weitere Blogs zu beantworten (die Liste werde ich entsprechend erweitern:


Es lohnt sich auch die Kommentare zu den Blogbeiträgen zu lesen.