Fryboyter

Cache von Pacman automatisch aufräumen

Der Paketmanager Pacman speichert die Pakete unter /var/cache/pacman/pkg. Um bei Problemen ein Downgrade machen zu können, werden dort automatisch keine Pakete entfernt.

Leert man das Verzeichnis nicht regelmäßig kann es sein, dass irgendwann die Festplatte voll ist und man sich wundert was nun schon wieder schief gegangen ist. Um dies zu vermeiden, kann man sich einen sogenannten Hook erstellen. Mit diesen lassen sich Aktionen bevor oder nachdem etwas mit Pacman gemacht wird ausführen.

Um bei dem Beispiel mit Cache zu bleiben, erstellen wir erst einmal das Verzeichnis /etc/pacman.d/hooks sofern es nicht schon vorhanden ist. In diesem erstellen wir dann eine Datei an deren Ende .hook stehen muss. Also beispielsweise pacman-cache-aufraeumen.hook. In diese kommt dann folgender Inhalt:

[Trigger]
Operation = Remove
Operation = Install
Operation = Upgrade
Type = Package
Target = *

[Action]
Description = Cache von Pacman aufräumen...
When = PostTransaction
Exec = /usr/bin/paccache -rqk2

Im Bereich Trigger wird definiert in welchem Fall das ganze ausgeführt werden soll und für was der Hook gültig ist. in diesem Fall wird also die Aktion beim Entfernen, Installieren und Aktualisieren aller Pakete ausgeführt.

Im Bereich Action wird angegeben, was ausgeführt wird und wann. In diesem Beispiel wird der Befehl /usr/bin/paccache -rqk2 nach dem Entfernen, Installieren oder Aktualisieren eines Pakets ausgeführt. Der Parameter -rqk2 bewirkt, dass alle Pakete im Cache bis auf die letzten zwei Versionen entfernt werden und dass dies ohne Rückmeldung geschieht.


Quelloffene unterbrechungsfreie Stromversorgung geplant

Der bekannte Entwickler Eric S. Raymond hat vor kurzem einen Artikel veröffentlicht in dem er beschreibt wie beschissen viele sogenannte USV (unterbrechungsfreie Stromversorgungen) sind. Die Reaktionen waren wohl so gut, dass er nun plant eine USV zu entwickeln die auf offene Hard- und Software setzt.

Hierzu sollen jetzt erst einmal die Anforderungen der Nutzer gesammelt werden und aufgrund dieser dann die Hardware zusammengestellt werden. Vorzugsweise aus leicht erhältlichen Teilen.Wenn alles klappt wie er es sich vorstellt, sollen am Ende Platinen, eine Liste mit den benötigten Teilen, eine Aufbauanleitung sowie ein Handbuch für die Hard- und Software zur Verfügung stehen.

Leute die sich für das Projekt intressieren und die beispielsweise etwas von Akkutechnologie verstehen dürfen sich laut Raymond gerne an seinem Projekt beteiligen. Aber auch die bekannten Unternehmen die USV herstellen sind herzlich eingeladen an dem Projekt mitzuwirken.


Fryboyter.de ohne Matomo

Ich habe mich eben entschlossen, den Code für Piwik / Matomo von Fryboyter.de zu entfernen. Somit werden aktuell nun keine Statistiken über die Besucher mehr erstellt. Dafür läd die Seite nun noch schneller. Die Gründe sind eigentlich relativ einfach.

Zum einen Funktioniert der iFrame für das die Opt-Out-Funktion auf einem Uberspace 7 nicht, da dort "Response Header" gesetzt werden, die man aktuell selbst nicht ändern kann. Zudem gibt es wohl auch aufgrund der DSGVO die eine oder andere Tretmine auf die auch Betreiber nichtkommerzieller Seiten treten können. Von den Geiern das Abmahnindustrie will ich gar nicht erst anfangen. Da für mich eigentlich nur interessant war, das ein x-belieber Nutzer Artikel X für einen Zeitraum von Y aufgerufen hat, hatte ich Piwik / Matomo auch nur sehr rudimentär genutzt. Aber selbst diese Informationen habe ich in den letzten Wochen und Monaten immer seltener abgerufen. Zudem kommt auch noch hinzu, dass in letzter Zeit immer weniger Nuter erfasst wurden, was vermutlich an der "Do-Not-Track-Funktion" der Browser sowie der Sperre durch die Ad-Blocker liegt. Kurz gesagt, Piwik / Matomo bringt mir immer weniger und sorgt mit etwas Pech auch noch für Probleme. Also weg damit. Zukünftig muss ich mich halt auf mein Bauchgefühl bzw. auf die abgegebenen Kommentare verlassen, welche Themen interessant sind und welche nicht. 

Sollte ich mich eines Tages wieder für Piwik / Matomo entscheiden, werde ich hier entsprechend darauf hinweisen. 


Git-Version für PGKBUILD herausfinden

Im Arch User Repository, kurz AUR, gibt es einige Paket mit dem Zusatz -git im Namen. Hiermit werden nicht die stabilen Versionen sondern Entwicklerversionen installiert.

Nehmen wir einmal die PKGBUILD-Datei von keepassxc-git als Beispiel. In dieser findet man die Zeile pkgver=2.2.4.r431.g46c58b32. Egal wie oft man nun KeepassXC über diese PKGBUILD-Datei installiert, landet man immer beim gleichen festgelegten Entwicklungsstand und nicht beim derzeit aktuellen. Was aber, wenn man sich genau diesen installieren will? Im Grunde genommen muss man die Zeile pkgver= einfach nur anpassen. Aber was muss man in solch einem Fall eintragen? Eine Lösung wäre folgendes Vorgehen:

- Mittels "git clone https://github.com/keepassxreboot/keepassxc.git" den Sourcecode auf den eigenen Rechner kopieren. Den betreffenden Link findet man in dem man auf der jeweiligen Github-Seite auf "Clone or download" klickt.

- Danach wechselt man in das erstellte Verzeichnis. In diesem Fall keepassxc und führt dort "git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'" aus. Hier wird dann aktuell "2.3.0.r10.g3c274135" ausgegeben, da die Veröffentlichung von Version 2.3.0 ansteht.

- Abschließend ändert man nun in der PKGBUILD-Datei die Zeile pkgver= entsprechend ab und kann sich so die aktuelle Entwicklerversion installieren.

- Um die Version in der PKGBUILD-Datei erneut zu aktualisieren, reicht es in das Verzeichnis keepassxc zu wechseln und dort "git pull" und danach "git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g" auszuführen. Git clone ist hier nicht nötig.

Da Git-Versionen aber nicht unbedingt stabil sind, sollte man aber abwägen ob man sich solch eine Version installiert oder nicht.


Slug aus URL mit htaccess entfernen

Normalerweise haben die Links auf Artikel mit Bolt CMS den Aufbau https://fryboyter.de/entry/Titel-des-Artikels. Die habe ich mittels der Routingfunktion auf https://fryboyter.de/Titel-des-Artikels umgebogen. Soweit so gut.

Zum Erzeugen des kompletten RSS-Feeds nutze ich allerdings die Erweiterung bolt-extension-rssfeed. In dieser ist die URL dann allerdings wieder https://fryboyter.de/entries/Titel-des-Artikels. An sich kein Problem, da die Artikel mit und ohne /entries aufgerufen werden können. Wäre da nicht Isso Comment.

Isso Comment verknüpft die Kommentare und Artikel anhand des Titels. Und da ist der mit /entries eben ein andere als ohne. Ruft nun jemand einen Artikel über den globalen RSS-Feed auf und gibt einen Kommentar ab, wird die URL mit /entries in der Isso-Datenbank gespeichert. Da ich aber eben die Artikel dank des Routings ohne /entries veröffentliche tauchen die Kommentare somit auch nicht auf, so dass ich hier immer in der SQLite-Datenbank herumpfuschen muss. An sich kein Problem es nervt aber trotzdem.

Im Template für den RSS-Feed oben genannter Erweiterung gibt es folgende Codezeile.

<link>{{ url('contentlink', { 'contenttypeslug': record.contenttype.singular_slug, 'slug': record.slug } ) }}</link>

In meinem nicht mehr ganz so jugendlichen Leichtsinn habe ich mir gedacht es reich hier einfach 'contenttypeslug': record.contenttype.singular_slug, zu entfernen. Pustekuchen. Sobald man versucht den Feed aufzurufen bekommt man eine unschöne Fehlermeldung. Zum einen reichen meine Programmierkenntnisse hier definitiv nicht aus, dass Problem zu lösen und zum anderen müsste ich nach jedem Update der Erweiterung diese anpassen. Also muss, zumindest vorübergehend, eine andere Lösung her.

Schlussendlich habe ich einfach die .htaccess-Datei für Bolt CMS angepasst. In dieser haben ich den Bereich <IfModule mod_rewrite.c> gesucht und in diesem folgende Zeile eingetragen.

RewriteRule ^entrie/(.+)$ https://fryboyter.de/$1 [R=301,L]

Abschließend noch den Cache von Bolt CMS gelöscht und fertig. Ruft nun jemand einen Link mit /entrie/ auf, wird er automatisch auf die Version ohne /entrie/ umgeleitet. Ich denke das ist derzeit die beste Lösung mit der ich nicht an der Erweiterung herumpfuschen muss.