Archlinux.org schafft Beginners Guide ab

Bei mir laufen inzwischen mehrere Geräte mit Arch Linux. Da hier eine Neuinstallation aufgrund von rolling Release recht selten ist, merke ich mir die einzelnen Schritte nicht alle. Daher habe ich jedes mal auf den Beginners Guide zurückgegriffen. In dieser Schritt-für-Schritt-Anleitung braucht man zum Großteil nur die Befehle abtippen und hat am Ende eine lauffähige Installation von Arch Linux.

Im Wiki von Archlinux.org zeigt nun der Link des Beginners Guide auf die normale Installationsanleitung. Dieser Schritt ist scheinbar schon seit einigen Jahren geplant, und wurde nun durchgezogen. Der Sinn dahinter ist wohl, die beiden Anleitungen zu verschmelzen um so nur eine Anleitung aktualisieren zu müssen. Macht aus meiner Sicht durchaus auch Sinn. Aber…

In der aktuellen Installationsanleitung wird zum Teil nur noch auf andere Wiki-Seiten verwiesen. So zum Beispiel bei dem Teil bei dem es um die Partitionen geht. Hier haben wir dann folgende Links:

https://wiki.archlinux.org/index.php/Partition_table
https://wiki.archlinux.org/index.php/Fdisk
https://wiki.archlinux.org/index.php/Parted
https://wiki.archlinux.org/index.php/MBR
https://wiki.archlinux.org/index.php/GPT
https://wiki.archlinux.org/index.php/Gdisk
https://wiki.archlinux.org/index.php/UEFI
https://wiki.archlinux.org/index.php/EFI_System_Partition
https://wiki.archlinux.org/index.php/GRUB
https://wiki.archlinux.org/index.php/LVM
https://wiki.archlinux.org/index.php/Disk_encryption
https://wiki.archlinux.org/index.php/RAID

Ok…

Der Link zur Verschlüsselung bringt hinsichtlich des eigentlichen Installationsvorgangs auch nichts. Also muss man sich von dort über https://wiki.archlinux.org/index.php/Dm-crypt auf https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system vorkämpfen.

Vermutlich habe ich hier eine andere Ansicht als die Entwickler der Distribution. Aber eine Anleitung besteht für mich nicht zu einem Großteil aus Verweisen. Zielgruppe hin oder her. Zumal ja durchaus einige Sachen auch im Detail direkt in der Installationsanleitung beschrieben werden. Wie z. B. das Erstellen des Root-Passworts mit passwd. Das ist meiner Meinung nach aber dann wieder so 0815, dass ich nicht nachvollziehen kann, wieso es direkt in der Anleitung erscheint.

Aktuell finde ich das ganze ziemlich seltsam und mir kommen zwei Möglichkeiten in den Sinn. Entweder wurde die Aktion mit der heißen Nadel gestrickt. Oder es wird hier künstlich versucht die Schwelle für die Einsteiger zu erhöhen. Ich würde mich nach über 10 Jahren mit Linux nicht mehr als Anfänger bezeichnen. Aber sorry, die Installationsanleitung ist mir in der jetzigen Form zu umständlich. Aber wie schon gesagt, vielleicht habe ich da einfach eine andere Ansicht wie die Entwickler. Und vielleicht liege ich auch falsch.

Wer der deutschen Sprache mächtig ist, findet auf wiki.archlinux.de übrigens noch den deutschsprachigen „Anleitung für Einsteiger“. Da ich nicht sagen kann, ob das deutschsprachige Wiki hier mit dem englischsprachigen gleichzieht, habe ich mir diese auch gleich mal als PDF gesichert.

Windows PowerShell für Linux und OS X veröffentlicht

Unter Windows setze ich die PowerShell recht gerne ein, da sich damit einiges mehr bzw. einfacher machen lässt als mit dem normalen Kommandozeilenprogramm cmd.exe. Microsoft hat den Sourcecode der Powershell nun unter der MIT-Lizenz auf Github veröffentlicht. Das ganze ist aktuell als Alpha-Version gekennzeichnet.

Neben dem Sourcecode werden neben den Paketen für Windows auch Pakete für Ubuntu, CentOS und OS X angeboten. Wer will, kann somit die PowerShell auch abseits von Windows nutzen. Ich selbst werde unter Linux aber bei der ZSH bleiben. Für Arch Linux gibt es übrigens auch schon ein Paket im AUR. Allerdings scheint hier die Installation noch nicht ganz zu funktionieren.

Paketverwaltung von Arch Linux auf dem Raspberry Pi beschleunigen

Seit längerem stelle ich einen Server für Quake 3 Arena zur Verfügung. Dieser läuft auf einem Raspberry Pi 3 mit ALARM (Arch Linux für ARM). Da dieser jedem zur Verfügung steht, muss ich regelmäßig die Pakete aktualisieren. Hierbei hängt der Updatevorgang in der Regel bei (1/3) Updating manpage index… und (2/3) Updating the info directory file… für einige Minuten fest.

Um beides schnell abzuwickeln ist der Raspberry Pi einfach zu schwach. Daher habe mir überlegt, brauche ich direkt nach einem Update bzw. einer Installation eines Pakets z. B. einen aktuellen Manpage-Index auf dem Raspberry Pi? Eigentlich nicht. Verantwortlich für die beiden Schritte sind sogenannte Hooks die es seit Pacman 5 gibt. Diese liegen unter /usr/share/libalpm/hooks/. In dem Verzeichnis liegen unter anderem die Dateien man-db.hook und texinfo-install.hook. Laut der Manpage von libalpm lassen sich die Hooks deaktivieren wenn man sie nach /dev/null umleitet. Um nicht an den originalen Hooks Änderungen vorzunehmen, erstellen wir unter /etc/pacman.d erst einmal das Verzeichnis hooks. Alle Hooks die dort vorhanden sind, überschreiben die, die unter /usr/share/libalpm/hooks/ vorhanden sind. Dort erstellen wir dann zwei Symlinks die nach /dev/null zeigen.

ln -s /dev/null /etc/pacman.d/hooks/man-db.hook
ln -s /dev/null /etc/pacman.d/hooks/texinfo-install.hook

Installiert oder aktualisiert man nun ein Paket und hat die Debug-Funktion von pacman aktiviert, sollte man folgende Zeilen in der Ausgabe finden und der Vorgang sollte schnell durchlaufen.

debug: skipping overridden hook /usr/share/libalpm/hooks/man-db.hook
debug: skipping overridden hook /usr/share/libalpm/hooks/texinfo-install.hook

So ganz ohne aktuellen Manpage-Index wollte ich dann aber doch nicht sein. Früh morgens findet auf dem Server im Grunde genommen keine Aktivität statt. Dann könnte man beide Hooks ja eigentlich laufen lassen. Lösen kann man das ganze über systemd und den timern. Diese sind in etwa vergleichbar mit den bekannten Cronjobs.

Unter /etc/systemd/system/ erstellt man hierfür erst einmal zwei Service- sowie zwei Timer-Dateien mit folgendem Inhalt.

manpage-index.service

[Unit]
Description=Manpage-Index aktualisieren

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'mkdir -p /var/cache/man; exec mandb --quiet --no-purge'

manpage-index.timer

[Unit]
Description=Manpage-Index täglich aktualisieren

[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true

texinfo-index.service

[Unit]
Description=Texinfo aktualisieren

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'for f in /usr/share/info/*.gz; do install-info "$f" /usr/share/info/dir 2> /dev/null; done'

texinfo-index.timer

[Unit]
Description=Run texinfo updater daily

[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true

Mit systemctl start texinfo-index.timer und systemctl start manpage-index.timer werden die beiden Timer dann noch abschließend aktiviert, so dass diese nun täglich um 2.30 und 3.30 Uhr gestartet werden.

Netctl funktioniert wegen Abhängigkeit von powerdevil nicht mehr

Vor ein paar Tagen habe ich KDE Plasma 5.7 unter Arch Linux auf meinem Notebook installiert. Nach einem Neustart konnte ich keine Verbindung mit dem WLAN aufbauen. Egal was ich versucht habe, der Service von netctl konnte nicht gestartet werden.

Nach einigen Minuten habe ich festgestellt, dass der Service von NetworkManager läuft. Frage 1. Warum läuft NetworkManager? Frage 2. Warum ist das Teil überhaupt installiert? Die zweite Frage konnte ich schnell beantworten. PowerDevil (ein Dienstprogramm unter KDE Plasma welches für die Energieverwaltung für Notebooks usw. zuständig ist), hat nun die fixen Abhängigkeiten networkmanager und networkmanager-qt. Frage 1 ist schon schwieriger. Wenn ich mittels systemctl stop NetworkManager.service Networkmanager stoppe kann ich eine WLAN-Verbindung mit netctl aufbauen. Ok, dann eben noch ein systemctl disable NetworkManager.service um den Dienst zu deaktivieren. Neustart… Netctl kann keine Verbindung aufbauen. Ah ja… Ein systemctl status NetworkManager.service zeigt mir, dass NetworkManager läuft. Ok… Scheinbar „braucht“ irgendein anderer Service NetworkManager (wenn er installiert ist) und aktiviert mal eben ganz frech den Service wieder. Da ich an dieser Stelle keine Lust mehr hatte und reichlich genervt war, habe ich die Keule ausgepackt und den Service von NetworkManager kurzerhand mittels systemctl mask NetworkManager.service maskiert. Das hat zu folge, dass man den Dienst gar nicht mehr starten kann. Auch nicht von Hand. Hierfür müsste ich die Maskierung erst wieder entfernen. Ist mir aber auch egal. Ich mag NetworkManager nicht und PowerDevil funktioniert bei mir auch ohne NetworkManager.

Ich hoffe mal, dass die Entwickler von PowerDevil ein Einsehen haben, und NetworkManager als feste Abhängigkeit entfernen. Wegen mir kann das Zeug ja als optionale Abhängigkeit bestehen bleiben. Irgendeinen Sinn wird NetworkManager bei PowerDevil ja haben.

Nutzungsvereinbarung von Let’s Encrypt ändert sich zum 01.08.2016

Ich habe heute von Let’s Encrypt eine E-Mail bekommen, dass sich zum 01.08.2016 die Nutzungsvereinbarung ändert. In der E-Mail wird auf https://letsencrypt.org/repository/ verwiesen. Dort ist die aktuelle sowie die zukünftige Vereinbarung als PDF-Datei hinterlegt. Ein schneller Abgleich bezüglich der Änderungen klappt so nicht wirklich. Kenn White hat daher unter https://gist.github.com/kennwhite/9541c8f37ec2994352c4554ca2afeece/revisions einen Diff veröffentlicht. Vielen Dank dafür. Zukünftig will Let’s Encrypt dafür sorgen, dass Änderungen bereits von offizieller Seite besser ersichtlich sind.