Skip to content

Docker-Hilfe ist hilfreich ...

docker Prinzipiell finde ich es ja super, dass die Docker-Kommandos eine eingebaute Hilfsfunktion haben, aber manchmal ist die Hilfe schon anders als erwartet.

Ich war mir nicht sicher, ob ich zuerst den Quell- oder Zieltag angeben muss beim Docker-Tag-Kommando:

$ docker tag --help

Usage:  docker tag IMAGE[:TAG] IMAGE[:TAG]

Tag an image into a repository

Options:
      --help   Print usage

Hotel-WLAN ...

linux Am vergangenen Wochenende durfte ich einmal mehr in einem Hotel zu Gast sein, das ein kaputt konfiguriertes WLAN hatte. Manchmal frage ich, was die Dienstleister befürchten, wenn sie den Zugang so kastrieren.

Für mich ist elementar, dass ich via SSH auf meine Server zugreifen kann, aber Port 22 ausgehend war geblockt. Das habe ich relativ schnell in den Griff bekommen, in dem ich via "Remote Console" auf einem meiner Server sslh installiert habe. sslh nimmt Verbindungen auf Port 443 (https) an und entscheidet mit dem Handshake an welchen Dienst die Verbindung "übergeben wird". Das klappt problemlos und ziemlich gut, wenn der WLAN-Administrator nicht auf Protokollebene blockt.

Zugriff geht dann via:

ssh -p 443 user@sslh-server.example.net


Die Weiterverbindung auf andere Server lässt sich dann mittels folgendem Befehl realisieren (das geht auch transparent mit der unten aufgeführten Lösung):

ssh -o ProxyJump=user@sslh-server.example.net user@ziel.example.com


Für reine SSH-Verbindungen ist das prima, aber es gibt ja zum einen noch andere Dienste (unter anderem Usenet, Protokoll nntp, Port 119), die ich auch noch nutzen möchte.

Da kommt dann das Tool sshuttle zum Einsatz. sshuttle benutzt SSH, um darüber alle tcp-Verbindungen plus DNS mittels Paketfilterregeln weiter zu leiten. Um die lokalen Regeln anzupassen wird sudo-Zugriff auf den root-Account benötigt.

sshuttle --dns --remote=user@sslh-server.example.net:443 0/0


Für mich funktioniert das und es macht "falsch" konfigurierte Netzwerke benutzbar.

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.