etckeeper¶
etckeeper ist eine Sammlung von
Werkzeugen, mit denen das /etc
-Verzeichnis in einem Git-Repository
verwaltet werden kann. So können Änderungen überprüft und ggf. rückgängig gemacht werden. Zudem verbindet es sich mit
Paketmanagern wie apt, um Änderungen, die
während eines Paket-Upgrades an /etc
vorgenommen werden, automatisch zu
übertragen. Schließlich werden auch Metadaten von Dateien berücksichtigt, die
Git normalerweise nicht verwaltet, die aber für /etc
wichtig sind, wie
z.B. die Berechtigungen von` /etc/shadow
.
Installation¶
etckeeper kann einfach installiert werden mit
$ sudo apt install git etckeeper
Konfiguration¶
Die Konfiguration von etckeeper erfolgt in der
etckeeper.conf
-Datei:$ sudo vi /etc/etckeeper/etckeeper.conf # The VCS to use. #VCS="hg" VCS="git" #VCS="bzr" #VCS="darcs" …
Außerdem sollten die folgenden beiden automatischen Commits vermieden werden:
# Uncomment to avoid etckeeper committing existing changes # to /etc automatically once per day. AVOID_DAILY_AUTOCOMMITS=1 … # Uncomment to avoid etckeeper committing existing changes to # /etc before installation. It will cancel the installation, # so you can commit the changes by hand. AVOID_COMMIT_BEFORE_INSTALL=1
Nun sollte noch git selbst konfiguriert werden, s. Konfiguration.
Schließlich kann das
/etc
-Verzeichnis unter die Git-Versionsverwaltung genommen werden mit:$ cd /etc/ $ sudo etckeeper init Initialized empty Git repository in /etc/.git/ $ sudo etckeeper commit "Initial commit"
Verwendung¶
Wird nun eine Konfigurationsdatei editiert, so können die Änderungen nun einfach mit Git protokolliert werden.
Metadaten verwalten¶
Da Git an sich keine vollständigen Metadaten aufzeichnet, wurde von etckeeper
ein pre-commit Hook in /etc/.git/hooks/pre-commit
eingerichtet. Dieser protokolliert in der Datei /etc/.etckeeper
die
chmod
- und chgrp
-Angaben für alle Dateien die nicht den Standardrechten
entsprechen:
maybe chmod 0755 '.'
maybe chmod 0700 './.etckeeper'
maybe chmod 0644 './.gitignore'
…
. gitignore
Dateien, die nicht mit Git im /etc
-Verzeichnis versioniert werden sollen,
können in der Datei /etc/.gitignore
hinzugefügt werden. Diese Datei wird
beim Initiieren von etckeeper erzeugt und kann ggf.
ergänzt werden nach dem Kommentar
# end section managed by etckeeper