Etckeeper es un conjunto de herramientas destinadas a sincronizar el directorio /etc de nuestro sistema Linux con controladores de versiones como git, mercurial, bazaar o darcs. De esta manera, siempre vamos a poder tener bajo control todos los cambios que se realicen en este directorio (por ejemplo, al instalar o actualizar paquetes), pudiendo revertir cualquiera de ellos en caso de que algo funcionara de forma incorrecta.
Esta herramienta es modular y totalmente configurable. También es muy sencilla de utilizar para todos aquellos usuarios que cuentan con conocimientos en el ámbito de los controladores de versiones.
Cómo instalar etckeeper
Lo primero que debemos hacer es instalar el paquete desde nuestro terminal. Para ello tecleamos:
- sudo apt install etckeeper && sudo apt install git-core
etckeeper utilizará por defecto el controlador de versiones Bzr. Por ello, una vez finalice la instalación, debemos indicarle que queremos utilizar git para llevar el control de nuestro directorio.
Para ello, editamos el fichero de configuración tecleando:
- sudo nano /etc/etckeeper/etckeeper.conf
Y comentamos la línea de bzr y descomentamos la de git. El aspecto final debe ser similar al siguiente:
Una vez hecho, vamos a crear el primer repositorio. Ejecutamos en el terminal:
- sudo etckeeper init
También podemos poner nombre a este primer commit del repositorio con:
- sudo etckeeper commit «Primer commit.»
Listo. ya tenemos etckeeper instalado y hemos inicializado el primer repositorio. A continuación, vamos a ver cómo utilizar esta herramienta para llevar siempre el control de los cambios que se realicen en el directorio /etc/.
Una vez llegados a este punto, podemos olvidarnos del programa, ya que él mismo se ejecutará una vez al día automáticamente sin que tengamos que hacer nada, registrando todos los cambios y permitiéndonos recuperarnos ante cualquier fallo en los ficheros de configuración del directorio /etc/.
Sin embargo, vamos a profundizar un poco más en el funcionamiento de esta herramienta.
Cómo funciona etckeeper
Lo primero que vamos a hacer es comprobar que todos los cambios están registrados, es decir, que no hay nada pendiente de hacer un «commit».
Para ello, nos desplazamos hasta /etc y allí ejecutamos:
- sudo git status
También podemos ver el historial de commits tecleando:
- sudo git log
En nuestro caso solo nos sale el nuestro, pero si la herramienta hubiera ejecutado su tarea diaria de auto-registro y auto-commit, nos saldrían todos los cambios realizados.
Para ver cómo funciona la aplicación cuando hay cambios, vamos a actualizar el sistema. Para ello ejecutamos:
- sudo apt update && sudo apt -y upgrade
Una vez finaliza la actualización, se ejecuta automáticamente esta herramienta con el fin de registrar todos los cambios (que no son pocos) que han ocurrido durante el proceso de actualización.
En caso de que esta tarea no se haya ejecutado automáticamente, siempre podemos crear un nuevo commit con el comando «sudo etckeeper commit «descripción»»
Una vez finalice y volvamos a tener el control sobre nuestro terminal, nos desplazamos de nuevo a /etc y volvemos a ejecutar un «git status» y «git log» para comprobar, que efectivamente, no hay cambios pendientes de registrar y nos encontramos en la nueva rama, cuyo nombre ha sido asignado automáticamente por la herramienta tras la actualización.
En caso de que haya ocurrido algún cambio que no haya quedado registrado, el «git status» nos informará de ello de la siguiente manera.
Gracias a esta herramienta, vamos a poder llevar siempre un control sobre los cambios que se realizan en el directorio /etc de Linux y, en caso de que algo salga mal, revertir los cambios gracias al controlador de versiones de Git.
¿Qué te parece esta herramienta? ¿Conoces otras herramientas para versionar los cambios del sistema automáticamente?