Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
Elektra (Software) – Wikipedia Zum Inhalt springen

Elektra (Software)

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Elektra Initiative)
Elektra

[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Entwickler Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Betriebssystem Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Programmier­sprache Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Kategorie Konfiguration
Lizenz Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
deutschsprachig ja
Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)

Elektra ist eine Initiative mit dem Ziel, eine einheitliche Schnittstelle zu Konfigurationinformationen von Software zu schaffen. Die Konfigurationsinformationen sollen dabei in einem einheitlichen Format für Anwendungen verfügbar sein. Dazu dient eine einheitliche Elektra-API.<ref name="raab">Markus Raab: The Elektra Initiative. (ODP) Linux in ein wirklich voll integriertes System verwandeln. libektra.org, 11. Mai 2006, abgerufen am 24. Januar 2014.</ref>

Hintergrund

Programme, die für unixoide Systeme entwickelt werden, arbeiten zurzeit nicht mit einer zentralen Konfigurationsdatenbank, wie man es beispielsweise von Windows (die Registrierungsdatenbank) kennt. Die Flexibilität der bisher in Unix üblichen Konfigurationsdateien wird mehrheitlich als Vorteil betrachtet. Es ergeben sich dadurch jedoch auch einige Nachteile:<ref name="raab2">Markus Raab: A Modular Approach to Configuration Storage. (PDF) Diplomarbeit. Fakultät für Informatik der Technischen Universität Wien, 29. September 2010, abgerufen am 24. Januar 2014 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

  • Der Aufbau von Konfigurationsdateien ist nicht standardisiert und ist daher von Programm zu Programm unterschiedlich.
  • Die Position von Konfigurationsdateien innerhalb des Systems ist nur teilweise standardisiert und kann deshalb von System zu System variieren.
  • Aus den beiden obigen Problemen ergibt sich, dass es keine einheitliche Schnittstelle (API) gibt, mit der Programme auf die Konfigurationsinformationen zugreifen können. Jedes Programm kennt in erster Linie nur die eigene Konfiguration. Der Zugriff auf die Konfigurationen anderer Programme ist nicht oder nur eingeschränkt möglich.

Funktionalität von Elektra

Elektra ist in erster Linie eine Bibliothek, die den Anwendungen als Schnittstelle zu den Konfigurationsinformationen dient. Die Information wird – ähnlich der Registrierungsdatenbank von Windows – in einem Baum und mit Schlüsseln strukturiert. Es sind unterschiedliche Speicherformate und verteilte Speicherorte für die Konfigurationsinformationen vorgesehen. Wo und in welchem Format diese Informationen letztendlich gespeichert werden, lässt sich durch Auswahl eines entsprechenden Plug-Ins und sogenannte Mount points beeinflussen.<ref name="raab2" /> Damit die Elektra-Bibliothek möglichst vielseitig verwendbar ist, hat sie neben den C-Standard-Bibliothek keine zwingenden Abhängigkeiten. Auf die Verwendung eines Daemons wurde absichtlich verzichtet, um keinen „Single Point of Failure“ zu schaffen. Neben der Bibliothek entwickelt das Elektra-Projekt auch Tools (sowohl mit grafischer Oberfläche als auch als Kommandozeilentool), mit denen Benutzer die Konfigurationsinformationen einsehen und bearbeiten können.<ref name="raab" />

Plug-Ins

Durch das parallele Zugreifen auf die unterschiedlichsten Plug-Ins wird eine ähnlich hohe Flexibilität erreicht, wie mit den bisher unter Unix üblichen Konfigurationsdateien. Dies stellt auch einen wesentlichen Unterschied zu anderen Konfigurationsdatenbank-Konzepten dar.<ref name="raab2" /> Beliebige weitere Speicherformate, wie z. B. Datenbanken, PHP-Konfigurationsinformationen oder sogar Excel-Dateien, sind dank dem flexiblen Plug-in-System von Elektra vorstellbar bzw. teilweise realisiert. Plugins können auch für import und export verwendet werden. Eine Auflistung existierender Plug-Ins ist im Readme auf der Elektra Homepage zu finden.<ref>elektra-plugins(7) -- plugins overview, auf libelektra.org</ref>

Aufbau der Informationsstruktur

Schlüssel

Ähnlich wie die Windows-Registrierungsdatenbank verwendet Elektra eine Baumstruktur aus Schlüsseln, in der die Konfigurationsinformationen abgelegt wird. Schlüssel können, wie Ordner im Dateisystem, beliebig verschachtelt werden. Es werden aber auch beliebige andere Metadaten, z. B. Auskommentieren in Konfigurationsdateien unterstützt und ermöglicht in Gegensatz zur Windows-Registrierungsdatenbank eine Dokumentation in der Konfigurationsdatenbank selbst zu erstellen.<ref name="raab2" />

Die Schlüssel-Pfade der Elektra-Baum-Struktur weisen Ähnlichkeiten mit einem Unix-Dateisystem auf: Es gibt vergleichbar dem Stammverzeichnis einen systemweiten Stamm-Schlüssel. Die Schlüssel werden in einem Pfad mit einem Schrägstrich (/) voneinander getrennt. Werte werden je nach Plug-In, z. B. mit einem Gleichheitszeichen (=) vom Schlüssel-Pfad abgegrenzt:

schlüssel_1/schlüssel_2=wert_1
schlüssel_1/schlüssel_2/schlüssel_3=wert_2
schlüssel_1/schlüssel_2/schlüssel_3=wert_3

Einige Beispiele für festgelegte Schlüssel<ref name="raab" />:

Pfad in Elektra Inhalt bisherige Konfigurationsdatei oder Inhalt eines Verzeichnisses in einem Linux/Unix-System nach FHS
system:/ Host-spezifische Systemkonfiguration /etc/
user:/ Konfigurationen des gerade aktuellen Benutzers ~/.*
dir:/ Konfigurationen im aktuellen Verzeichnis (wie bei .git) $PWD
spec:/ Spezifikation von Konfigurationen es gibt keine Entsprechung
/ Kaskadierende Suche in allen Namensbereichen es gibt keine Entsprechung
/elektra/mountpoints/ Konfiguration von Elektra selbst es gibt keine Entsprechung

Werte

Elektra unterstützt String (Text) und Binary (Binärdaten). Von der Verwendung von Binary wird jedoch abgeraten, da sie als „unmanageable blackboxes“ betrachtet werden.<ref name="raab2" /> Elektra arbeitet intern mit UTF-8, daher werden alle Strings vor der Speicherung in UTF-8 konvertiert (mittels iconv plugin).

Einzelnachweise

<references />