Was haltet Ihr von libelektra?

Smalltalk
Antworten
Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Was haltet Ihr von libelektra?

Beitrag von heisenberg » 16.11.2017 10:50:50

Hi,

libelektra ist so ein OSS-Projekt, für das ich mich sehr begeistern kann. Die meisten werden schon mal etwas davon gelesen haben. Für alle, die es noch nicht kennen möchte ich gerade mal 5 Sätze darüber schreiben.

Was ist libelektra?

Es ist eine Bibliothek, die eine Abstraktionsschicht schafft zwischen Konfigurationsschnittstelle und Konfigurationsspeicher. Es unterstützt dabei eine verschiedene Anzahl von Backends. Z. B. generische wie INI, csv, YAML, XML, JSON oder spezielle wie fstab, hosts, passwd. Es hält dabei keine eigenen internen Daten gar noch in einem binären Format, sondern greift auf vorhandene Dateien zu, speichert und liest dort. D. h. ein Editor bleibt weiterhein eine Alternative um Konfigurationsdateien zu bearbeiten.

Eine Bibliothek und kein Daemon

Da Elektra eine schlanke Bibliothek und kein Daemon ist, ist es immer verfügbar, sofern die Bibliotheken verfügbar sind. Wie schlank es denn dann wirklich ist, entscheidet dann natürlich auch der Einsatz der Plugins, die dann weitere Bibliotheken benötigen.

Wie wird es verwendet?

D. h. man kann Konfigurationsänderungen vornehmen, welche dann in die Dateien geschrieben werden.

z. B. einen Hosts-Eintrag lesen(Hier mit dem Kommandozeilentool kdb):

Code: Alles auswählen

kdb get system/hosts/ipv4/mserver.mydomain.de
... oder einen neuen Hosts-Eintrag setzen:

Code: Alles auswählen

kdb set system/hosts/ipv4/mserver.mydomain.de 12.34.56.78
Der Eintrag wird dann von libelektra in einen Eintrag in /etc/hosts übersetzt und dort eingetragen bzw. geändert.

Stärke: Validierung

Was ich besonders sinnvoll finde sind Validierungsregeln, damit Werte vor dem Schreiben geprüft werden können. Der Folgende Befehl führt zu einer Fehlermeldung(Weil ::1 keine gültige IPv4-Adresse ist):

Code: Alles auswählen

kdb set system/hosts/ipv4/mserver.mydomain.de ::1
Wichtig: Kommentare

Besonders wichtig sind in Konfigurationsdateien Kommentare. Die müssen erhalten bleiben und ein Konfigurationswerkzeug muss Möglichkeiten dazu bieten. Mit dem folgenden Befehl kann man darüber hinaus Kommentare zu einzelnen Zeilen auch auslesen.

Code: Alles auswählen

kdb getmeta keyname comment*
Wie funktioniert es?

Das System funktioniert selbst so, dass man Konfigurationsdateien unter Angabe des Backendtyps einhängt. Ja, es wird tatsächlich der Begriff mounten verwendet, Z. B.

Code: Alles auswählen

kdb mount --with-recommends /etc/hosts system/hosts hosts
Damit ist der Konfigurationspfad system/hosts jetzt eingehängt und kann mit Bibliotheksaufrufen oder den Kommandozeilenwerkzeugen verwaltet werden.

Programmierumgebungen

Es gibt Bindings für C, C++, Python, lua, haskell (via c2hs), java, ruby.

Werdegang und Verbreitung

Libelektra wird seit langem stetig entwickelt. Die Verbreitung ist gering(Oyranos als grösseres Projekt verwendet es), vor allem in der Open Source Welt. Meine persönlichen Erfahrungen sind Reaktionen, die aufgrund des ursprünglich gewählten Namens "linux-registry" eher feindselig und ablehnend ausgefallen sind. Der ursprüngliche Ansatz war, ein eigenes Backend(Dateiformat) zu haben um sich den Aufwand der 1001 Dateiformatparser zu sparen. Das hat nicht funktioniert. Mir hat damals die Auswahl der verfügbaren Backends nicht gefallen(XML? oder Berkeley-DB? Als Natives Konfigurationsformat? Never!). Seit langer Zeit werden deswegen vorhandene Dateien verarbeitet.

Intern arbeitet das System der Konfigurationsbearbeitung mit Plugins, die austauschbar und erweiterbar sind. Z. B. für Lokalisierung der Daten(aka Resolver, in welcher Datei steht ein Wert?), Validierung, Logging(Protokollierung von Konfigurationsanfragen und Konfigurationsänderungen), Verschlüsselung und Benachrichtigung. Siehe libelektra.org/plugins/.

Ein hübsches & kurzes Demovideo gibt's auf der Homepage: https://www.libelektra.org

---

Was haltet Ihr davon?
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Was haltet Ihr von libelektra?

Beitrag von rendegast » 21.01.2018 19:43:31

Es gibt eine git-Quelle für die Erzeugung von debian-Paketen
https://github.com/ElektraInitiative/li ... ree/debian
Die momentane aktuelle Version ist 0.8.21 aus Dez 2017.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten