Herramienta que permite almacenar el directorio /etc, que es donde se almacenan los archivos de configuración, en un repositorio git, mercurial, brz o darcs. Se conecta a APT para confirmar automáticamente los cambios realizados en /etc durante las actualizaciones de paquetes. Realiza un seguimiento de los metadatos de los archivos que los sistemas de control de versiones [Version Control Systems - VCS] normalmente no admiten, pero que son importantes para /etc, como los permisos de /etc/shadow. Ideal para mantener un historial de cambios, revertir errores o documentar modificaciones en /etc.
Archivo de configuración para establecer el VCS que se usa, por defecto git:
# nano /etc/etckeeper/etckeeper.conf
# The VCS to use.
#VCS="hg"
VCS="git"
#VCS="bzr"
#VCS="darcs"
PUSH_REMOTE="origin"
Y para que realice los PUSH_REMOTE automaticamente ha de configurarse:
# nano /etc/etckeeper/commit.d/60push-remote
#!/bin/sh
cd /etc
if [ "$VCS" = "git" ]; then
git push "$PUSH_REMOTE" master || {
echo "Error: No se pudo hacer push al remoto $PUSH_REMOTE" >&2
exit 1
}
fi
# chmod +x /etc/etckeeper/commit.d/50push-remote
Con la base realizada, puede empezar a usarse la aplicación.
# cd /etc
# etckeeper init
# etckeeper commit "Primera confirmación inicial de /etc"
A partir de este momento cualquier cambio que realice el usuario en algún archivo en /etc ha lanzarse:
# etckeeper commit "Añadida entrada para servidor-local en /etc/XXXX"
Si la modificación procede de APT por la instalación de un paquete, etckeeper detecta los cambios y automaticamente hace una confirmación al finalizar la instalación.
# etckeeper vcs log
# etckeeper vcs status
# etckeeper commit "Actualizados hosts y resolv.conf"
# etckeeper vcs checkout abcd123 /etc/hosts
# etckeeper commit "Revertido cambio en /etc/hosts a estado inicial"
# etckeeper vcs diff abcd123 efgh456
Nota.- Lo inmportante de este paquete, es su integración con APT. Cada vez que se usa para instalar, actualizar o eliminar paquetes, etckeeper ejecuta un "hook" que detecta cambios en /etc y los registra automáticamente en el repositorio con un mensaje como "committing changes in /etc after apt run" sin intervención manual y los permisos y otros metadatos los guarda en el archivo especial .etckeeper.