Skip to content

Powerline ...

linux

Ich habe jetzt einmal meinen Prompt von Liquid Prompt auf Powerline umgestellt, weil es damit ein wenig konsistenter ist, da sowohl die Shell wie auch Vim und tmux unterstützt werden.

Bei Fedora 27 ist Powerline direkt dabei, bei CentOS muss man Powerline "von Hand" installieren, das Verfahren wird auch bei anderen Distributionen funktionieren.

Fedora 27:

dnf install powerline tmux-powerline vim-powerline
systemctl enable powerline
systemctl start powerline

CentOS 7:

yum install python-pip
pip install powerline-status

cd /usr/share/fonts
curl -LO https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
fc-cache -vf /usr/share/fonts/

cd /etc/fonts/conf.d/
curl -LO https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf

.bashrc

export POWERLINE_BASH_CONTINUATION=1
export POWERLINE_BASH_SELECT=1

# Fedora 27:
source /usr/share/powerline/bash/powerline.sh

# CentOS 7:
source /usr/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh

.vimrc

# Nur CentOS 7:
set rtp+=/usr/lib/python2.7/site-packages/powerline/bindings/vim/

# Fedora 27 und CentOS 7:
set laststatus=2

.tmux.conf

# Fedora 27:
source /usr/share/tmux/powerline.conf

# CentOS 7:
source /usr/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf

Fedora 27 ...

fedora

Normalerweise aktualisiere ich mein Client-Betriebssystem dadurch, dass ich - grob zusammengefasst - ein Backup mache, den Rechner neu installiere und dann die Daten zurück sichere (siehe auch Neuinstallation Fedora 26 und Update auf eine neue Ubuntu-Version).

Dieses Mal war ich "abenteuerlustig" 8-) und habe mit den Bordmittel ein Backup gemacht, so wie es hier beschrieben wird.

Es hat wahnsinnig gut funktioniert.

Ich musste im Vorfeld den Citrix Receiver deinstallieren, weil es kein "webkitgtk" mehr gibt und habe stattdessen den Webreceiver installiert, der die Abhängkeit nicht hat. VirtualBox hat noch kein Repo für Fedora 27, die bereits installierte Version funktioniert aber bestens weiter.

Klasse. Allerdings werde ich das - obwohl es so gut funktioniert hat - nicht bei jedem Release so machen, weil das Entmüllen auch etwas wert ist.

Ich habe schon einige Linux-Distributionen durchprobiert und muss gestehen, dass mir Fedora am Besten gefällt. Allerdings haben sich natürlich alle anderen Distros auch weiterentwickelt und da kenne ich den aktuellen Stand nicht mehr.

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.

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

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

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)

Teil vier der Saga ist verfügbar ...

adminbuch

Jetzt ist es soweit. Episode vier von Linux-Server. Das umfassende Handbuch ist jetzt verfügbar. Es hat dieses Mal sehr viele inhaltliche Änderungen gegeben, über die ich hier nicht gross referieren möchte, dafür sind sie zu umfangreich.

Die für mich grösste Änderung und die, über die ich mich am meisten freue, ist, dass wir nun endlich auch CentOS mit an Bord haben, dafür verzichten wir auf SUSE Linux Enterprise Server (SLES). Jetzt ist das Buch endlich komplett und umfasst die vier grossen Systeme, die auf Servern zum Einsatz kommen: CentOS, Debian, openSUSE und Ubuntu. Gleichzeitig sind wir damit aber auch kompatibel zu Red Hat Enterprise Linux und SLES.

Mit einem weinenden Auge musste ich zur Kenntnis nehmen, dass unser langjähriger Gefährte Charly Kühnast auch ein Privatleben hat und jetzt leider nicht mehr dabei ist. Doof.

Windows mit Linux-Kernel?

linux

Mit der letzten Ankündigung bin ich tatsächlich der Meinung, dass wir den Beginn der Umstellung von Windows auf einen Linuxkernel sehen. Es mehren sich die Zeichen, dass die Integration von Windows und Linux - durch Microsoft getrieben - immer stärker wird.

Dem vorangegangen sind eine Reihe von anderen Meldungen.

Windows Containers mit Docker.

Der Datenbankserver MS SQL wird auf Linux portiert.

OpenSSH wird in Windows Server 2016 enthalten sein.

Nebenbei: Wer es schafft das Takswarrior-Kommando "task color" im Linux-Subsystem von Windows 10 zu zeigen, bekommt ein Taskwarrior-T-Shirt und einen Sticker (Twitter) ;-)

openSUSE Leap 42.1 ...

linux

Da kann man mal sehen, wie viel Zeit es braucht bis ein Artikel fertig wird ...

Wer einen Distributionstest sucht, sollte meiner Ansicht nach lieber bei Pro-Linux oder Michael Kofler nachlesen.

Meine Anmerkung ist eher "philosophischer Natur" ;-)

Zum Einen finde ich es klasse, dass sich bei OpenSUSE endlich wieder etwas getan hat. Tot gesagte leben bekanntlicherweise länger. SUSE war "meine Einstiegsdroge" in die Linuxwelt und ich hätte es sehr schade gefunden, wenn diese Distribution einfach sang- und klanglos verschwunden wäre.

Zum Anderen gefällt mir das Konzept sehr (keine Angst, ich denke derzeit nicht darüber nach, zu wechseln). Es bietet eine sehr gute Alternative zu bestehenden Distributionen, die sich (bis jetzt) bezogen auf Softwareversionen ganz grob in drei Lager einteilen liessen:

  1. Abgehangen (ich möchte nicht veraltet sagen, weil es nicht passt), stabile Software, die lange unterstützt wird. Vertreter dieser Gattung finden sich besonders bei den Server-Systemen, seltener auf dem Desktop.
    • CentOS
    • Debian
    • Ubuntu LTS

  2. Schnell drehend, relativ viele Updates, aktuelle Software, kurze Support-Zeiträume. Typische Verwendung als Desktopsystem für (ambitionierte) Endbenutzer.
    • Fedora
    • Ubuntu (ohne LTS)

  3. Ständig aktualisierend ("rolling release"), meist topaktuelle Software häufig zu Lasten der Stabilität. Wer nicht regelmässig mitspielt ("aktualisiert") manövriert sich in Schwierigkeiten.
    • ArchLinux
    • Sabayon
    • Gentoo
    • OpenSUSE Tumbleweed

Klar, dass noch wesentlich mehr Distributionen gibt, die obigen seien nur als Beispiele genannt.

Es gibt natürlich Zwitter, so lassen sich die abgehangenen Systeme durch zusätzliche (nicht vom Hauptrojekt unterstützte) Paketquellen mit aktuellerer Software bestücken.

Und diesen "Zwitter-Weg" geht jetzt auch OpenSUSE Leap. Sie bauen auf der stabilen Basis von SUSE Enterprise Linux auf und portieren aktuelle Applikationen aus Tumbleweed zurück in die Distribution und unterstützen sie auch offiziell.

In der Summe ist das eine Mischung aus der ersten und der dritten gerade genannten Kategorie. Für mich ist dieser Weg das Beste aus allen Welten für Endanwender und ich hoffe, dass einige weitere Distributionen dem Beispiel folgen werden. Allerdings, das darf man nicht vergessen, kann der hohe Takt auch zu Problemen führen.

Termux ...

android

Termux ist eine Linux-Umgebung (und Terminal-Emulator) für Android, damit wäre schon fast alles gesagt, wenn es nicht so toll und zu dem noch Open-Source-Software wäre :-)

In der App lassen sich nämlich Pakete via apt nachinstallieren und das ohne, dass man für das Gerät root-Rechte benötigt. Neben den üblichen Verdächtigen, wie beispielweise openssh oder vim gibt es auch ein Paket für Taskwarrior, das direkt funktioniert. Zusammen mit dem Taskserver lässt sich so auch bequem synchronisieren.

Der Entwickler ist sehr aktiv und steht Paketwünschen sehr wohlwollend gegenüber. Am einfachsten kann man vermutlich einfach einen Request im entsprechenden GitHub-Projekt einstellen.

Den Tipp zu Termux hat mir Wim (hast Du eigentlich eine Webseite?) auf der OpenRheinRuhr gegeben.

Migration zu Hetzner ...

centos

Man, was ist das nervig.

Aufgrund eines Irrtums, der sich durch Hören dieser Folge (ab 01:29:32) des empfehlenswerten Podcasts Rechtsbelehrung aufklärte, werde ich mit meinem root-Server wieder nach Deutschland umziehen. Ich hatte das hier schon mal angemerkt.

Mit Bekannten teile ich mir einen Backupserver bei Hetzner und da liegt es natürlich nahe mit dem Server auch zu Hetzner zu gehen. Das Preis-/Leistungsverhältnis für den EX40 ist einfach ungeschlagen. Der Server, wie auch der andere Server der Bekannten, läuft mit CentOS und sehr schnell, also so wie er soll.

Mein neuer Server stand in Rechenzentrum 20 und "fühlte" sich immer sehr langsam an, vor allem das Installieren dauerte ewig. Nun, EPEL-Repositories sind aktiviert und ich bekam den Server kurz vor dem Release von Fedora 23, daher dachte ich, es lag daran. - So war es aber nicht.

Ich habe einen nmap auf Port 22 eines Servers in einem anderen Rechenzentrum bei Hetzner gemacht und der dauerte 16.5 Sekunden, von einem anderen Server bei Hetzner (ebenfalls nicht im gleichen Rechenzentrum) dauerte es 0.07 Sekunden und von zu Hause 0.2 Sekunden.

Das spricht sehr stark dafür, dass etwas im Routing nicht sauber funktioniert und die Pakete den "falschen (langsamen) Weg nehmen". Der Hetzner-Support versuchte das Problem mit dem Rettungssystem (Debian) nach zustellen, aber da funktionierte alles zufriedenstellend. Sie verweigerten Support für das installierte System, was ich verstehe, bei einem root-Server ist man auf sich alleine gestellt.

Also habe ich den Server mit dem offiziellen CentOS-Image neu installiert und danach nichts anderes gemacht als nmap zu installieren. Das Problem war wieder da.

Jetzt ist für mich klar, dass da irgendetwas im Zusammenspiel von CentOS mit dem Routing Probleme bereitet.

Aber auch jetzt fand der Support kein Problem, ich gehe davon aus, dass es nie unter CentOS nachgestellt haben und sie boten mir an, einen Austauschserver zu bekommen. Aufgrund der Prozesse sollte ich den alten Server kündigen und den neuen bestellen, sie würden dann an der gleichen Stelle einen neuen Server bereitstellen. Das hätte das Problem meiner Ansicht nach nicht gelöst.

Glücklicherweise kann man einen Server innerhalb von zwei Wochen stornieren, das habe ich gemacht. Dann habe ich einen neuen Server bestellt und darum gebeten ihn nicht im gleichen Rechenzentrum 20 bereitzustellen. Das dauert knapp 24 Stunden und, was soll ich sagen, im Rechenzentrum 21 gibt es das gleiche Problem.

Man, das nervt.

Also wieder storniert und neu bestellt und jetzt darauf geachtet, dass der Server in ein Rechenzentrum kommt, wo ich weiss, dass es funktioniert.

Das ist halt der Nachteil, wenn man zu einem Grosshoster geht und dort wirklich Probleme hat. Die grosse Anzahl an Systemen können nur durch einen standardisierten Prozess verwaltet werden. Lösungen, die ausserhalb dieser Prozesse liegen, funktionieren halt nicht. Nicht falsch verstehen, das ist kein Vorwurf, es geht nicht anders. Aber es nervt.

CAs hinzufügen ...

linux

Für den Fall, dass das noch jemand anderes benötigt.

Um andere Certificate Authorities (CAs) zu Linux hinzuzufügen, sind nur kleine Schritte nötig. Hier einmal am Beispiel CAcert.

Debian:

curl http://www.cacert.org/certs/root.crt -o /usr/local/share/ca-certificates/cacert_root.crt
curl http://www.cacert.org/certs/class3.crt -o /usr/local/share/ca-certificates/cacert_class3.crt
update-ca-certificates

CentOS:

update-ca-trust enable
curl http://www.cacert.org/certs/root.crt -o /etc/pki/ca-trust/source/anchors/cacert_root.crt
curl http://www.cacert.org/certs/class3.crt -o /etc/pki/ca-trust/source/anchors/cacert_class3.crt
update-ca-trust extract

ACHTUNG: In jedem Fall sollte vor dem Ausführen von update-ca-certificates bzw. update-ca-trust extract die Fingerprints der Zertifikate überprüft werden.