Skip to content

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

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.

Neues Tablet ...

android Nachdem sich mein Tablet ("glücklicherweise" noch in der Garantiezeit) letzte Woche verabschiedet hat, habe ich am Donnerstag ein Austauschgerät bekommen. Darüber bin ich wirklich froh, weil selbst aktuelle Geräte nicht die Leistungsfähigkeit und die Haptik des Xperia Tablet Z4 erreichen.

Für mich war es sehr spannend zu sehen, wie sehr dieses Gerät von mir benutzt wird und das ich unter der Woche beim Pendeln nie ohne Tablet unterwegs bin.

Der überwiegende Teil der Anwendungen, die ich neu installiert habe, hat mit dem Lesen zu tun:
  • Moon+ Reader Pro ist das Hauptleseprogramm, es hat seine Stärken bei PDFs und ePub-Dateien
  • Wallabag hoste ich selber und mit der App kann ich die Artikel auch Offline lesen
  • News+ in Premium mit Tiny Tiny RSS Plugin ist meine Schnittstelle zur selbstgehosteten Tiny Tiny RSS Instanz
  • Kindle, meine bessere Hälfte schwört auf ihren Kindle, einige der Bücher dort lese ich auch gerne.
  • Dropbox, da viele Verlage eine Dropboxschnittstelle anbieten und verkaufte Bücher dort ablegen können (beispielsweise O'Reilly).


Ein weiterer grosser Teil dreht sich rund um "einfach machen":
  • Termux mit Termux:Styling und Termux:API gibt mir eine Shell-Umgebung auf Android. Auf dem Telefon habe ich das nicht, auf dem Tablet ist es ein Muss.
  • Taskwarrior, meine Aufgabenverwaltung.
  • Mosh, um mich mit meinen Servern verbinden zu können.
  • Git, weil Versionskontrolle wichtig ist ...
  • Liquidprompt macht den Prompt schön :-)
  • Vim als Editor


Bleibt noch der Kalender:


Und diverser "Kleinkram", von dem ich hier nur ein paar Programme explizit erwähnen möchte:


Da kommt ganz schön etwas zusammen und wie ich das gerade sehe, habe ich über die Jahre einiges an Software gekauft.

Tablet tot ...

android Ich fühle mich in meinen Freiheitsrechten eingeschränkt ... Mein Tablet ist ein Xperia Tablet Z4 hat am Dienstag den Geist aufgegeben ... glücherweise drei Monate vor Ablauf der Gewährleistung.

Vermutlich kein das Gerät nicht mehr repariert werden. Die Alternativen sind irgendwie nicht sehr überzeugend.

Ich bin für jeden Tipp dankbar.

Als interessante Geräte habe ich nur das Google Pixel C und das Samsung Galaxy Tab S3 (noch kein Wikipedia-Artikel) gefunden.

Interessanterweise ist mein altes Tablet im Vergleich immer noch besser als die beiden aktuellen, wie dieser Vergleich zeigt.

Dass das Pixel C kein LTE hat, könnte ich zur Not noch verschmerzen. Das Samsung Galaxy Tab S3 sieht wie ein Clone des iPad Pro aus.

Die Tastaturen beider Tablets haben keine Escape-Taste mehr, wie soll ich denn damit Vim bedienen?

Anforderungen an das kommende Tablet:
  • Android als Betriebssystem, ja es gibt auch andere schöne Geräte, ich möchte aber gerne eines mit Android haben
  • Mindestens 9.7 Zoll und nicht mehr als 10.9 Zoll, ich möchte gerne DIN A4 PDFs in Ganzseitenansicht lesen können
  • Auflösung wenigstens Full HD, mehr ist besser
  • 32 GB Speicher sollten drin sein, wenn es keine microSD-Karten unterstützt, dann lieber 64 GB (mehr geht immer)
  • Externe Tastatur, wirklich gerne mit Escape-Taste ...
  • Mindestes Quadcore

Kein Podcast ...

podcast
Wenn du bemerkst, dass du ein totes Pferd reitest, steig ab!


Ja, es ist doof. Viele von Euch (ich übrigens auch) warten darauf, dass ich endlich mit dem neuen Podcast anfange. Aber ich schaffe es nicht. Es ist nicht so, dass mir am Willen fehlt, es gibt nur viele Dinge, die getan werden wollen, die wichtiger sind.

Und statt das jetzt ständig vor mir herzuschieben - immerhin mittlerweile mehr als ein Jahr - und mich ständig selber unter Druck zu setzen, erkläre ich die Bemühungen hiermit für vorerst beendet.

Ich habe das Equipment immer noch und werde es nicht verkaufen und es spricht nichts dagegen, irgendwann noch einmal einen Podcast zu starten, nur leider "im Moment" nicht.

Silvias Hundeschule nimmt Fahrt auf und wird immer erfolgreicher, so dass meine Hilfe auch dort gebraucht wird.

Im Open-Source-Bereich fokussiere ich mich weiter auf Taskwarrior, hoste GNUsocial.ch und arbeite daran, dass es auch in diesem Jahr einen Swiss Perl Workshop geben wird.

Neben Aikido würde ich mich sehr gerne auch wieder öfter auf unser Pferd setzen oder mehr hier im Blog veröffentlichen, aber auch das schaffe ich momentan nicht.

Alles geht eben nicht.

IPv6 ready?

Wenn ich keinen Bock geschossen habe, sollte auf meinem Server jetzt alles (nicht nur Mail) via IPv6 funktionieren.

Wer Fehler findet, darf sie behalten möge sie mir bitte melden.

Danke!

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.

Noch eine Chance für Thunderbird ...

Ungefähr ein Mal pro Jahr gebe ich Thunderbird eine Chance mich davon zu überzeugen, dass es ein guter Mailclient ist.

Mein Leidensdruck liegt darin begründet, dass ich immer mehr html-Nachrichten bekomme, die Claws-Mail nicht darstellen kann (oder will) und ich dafür in einen Browser wechseln muss.

Das nervt.

Hier im Blog lassen sich die vergangenen Versuche finden.

Was ich bis jetzt gemacht habe.

Thunderbird installiert, dazu die Plugins SoGo-Connector, Enigmail und uBlock Origin.

Damit habe ich gpg-Verschlüsselung und zusätzlich Kalendar und Kontakte aus meiner Nextcloud-Instanz eingebunden.

Was schon ein bisschen nervt, dass ich bei jedem IMAP-Ordner via Rechtsklick, dann Properties angeben muss, dass der Ordner bei der Überprüfung von neuen Nachrichten berücksichtigt werden soll.

Habt Ihr noch Tipps, welche Erweiterungen ich mir anschauen sollte?

Blogartikel, die ich 2016 nicht geschrieben habe ...

Ich teile meinen Jahresrückblick mal in leicht verdauliche Häppchen auf, sonst wird der zu lang und von niemandem mehr gelesen. Hier kommt jetzt also Teil 1.

Seit 20 Jahren mache ich jetzt Linux, angefangen habe ich im November 1996 mit der ersten SUSE Version. Dazu wäre ich gerne ein Fazit losgeworden.

Im letzten Sommer ist mein "Brief an einen Windowsnutzer" zehn Jahre alt geworden und ich wurde von einem Blogleser darum gebeten, den doch einmal zu aktualisieren. Das hätte ich gerne geschafft, aber irgendwie waren andere Dinge immer wichtiger.

Immer mal wieder werde ich auf alte Präsentationen angesprochen, so muss aus der Bare Metal Restore Edition 2016 leider eine Version 2017 werden. Im gleichen Zug wollte ich einmal eine Backup-Strategie für Heimanwender skizzieren und einige Grundprinzipien für Backups ansprechen. Das für mich momentan ultimative Backuptool namens Borgbackup darf da natürlich auch nicht fehlen.

Über zwei Präsentationen eines Rechtsanwalts "Getting things Dog" und "Was Hunde von Getränkekisten unterscheidet" wollte ich auch noch ein paar Dinge loswerden.

Ein phantastisches Feature für Taskwarrior ist das review-Kommando in tasksh, dazu folgt dann auch noch ein Artikel.

Zum guten Schluss und nach reichlich Präsentationen in 2016 wollte ich auch noch über das von mir aktuelle Theme für LaTeX-Beamer - Metropolis - schreiben und wie froh ich darüber bin, dass die Präsentationen jetzt endlich nicht mehr wie LaTeX aussehen ;-) Mein Makefile und pdfpc hätte ich in diesem Zusammenhang auch noch erwähnt.

Aber ich bin ganz froh, dass ich es geschafft habe, wöchentlich meinen Linkdump loszuwerden und freue mich darüber, dass er so vielen von Euch gefällt. Danke für Euer Feedback!