Compartiendo configuraciones entre máquinas

Este fin de semana me tocó formatear mi portátil. Quería probar un par de cosas y cambiar algún software, pero la idea era hacerlo partiendo de una instalación limpia de Xubuntu con Xfce. Lo bueno es que volver a dejar casi todo lo que uso tal como estaba fue un proceso muy rápido porque siempre tengo las configuraciones bajo control de versiones. Lo empecé a aplicar en realidad hace mucho para poder compartir configuraciones entre máquinas, es una práctica bastante extendida.

En Linux todo es un archivo. Lo habitual es que los programas guarden un archivo de configuración en la raíz de tu home o en algún directorio concreto. Generalmente un archivo que comienza con un punto, porque suelen ser archivos ocultos. De ahí que mi carpeta de configuraciones, como la de muchos usuarios, se llame dotfiles.

La práctica consiste, lo primero, en tener una carpeta donde se guardarán todas las configuraciones y que será un repositorio que guardaremos en algún servicio online, sea Github, Bitbucket o alguna solución alojada en tu servidor. Dentro crearemos carpetas con el nombre del software a configurar: Vim, Emacs, Xmonad, Atom … lo que sea. Como truco, si creas la carpeta pero aún está vacía,  Git no la guardará, pero si incluyes dentro un archivo .gitkeep lo tienes  solucionado.

Cada vez que instales un nuevo software que genere un archivo de configuración de este tipo, el proceso es el siguiente. Copias el archivo original a la carpeta que le corresponde dentro de dotfiles. Después, tras asegurarte de que lo has copiado, borra el archivo original. A continuación, para que el programa utilice el que tenemos en el repositorio, hacemos un enlace simbólico que tendrá como origen el archivo en el repo y como destino, la ruta que el software está esperando. Esto es, por ejemplo, para utilizar el archivo de configuración de Vim que tenemos en dotfiles haríamos:

ln -s ~/dotfiles/vim/vimrc ~/.vimrc

Con esto, Vim ya leerá un archivo de configuración con el nombre y la ruta que espera. Por supuesto no hay que olvidarse de incluir el archivo en el repositorio haciendo git add ni de hacer un commit y push al repositorio remoto.

Ahora, tanto si necesitamos reinstalar la máquina o simplemente queremos compartir configuración ente casa y el trabajo, sólo hay que clonar el repositorio y hacer los enlaces simbólicos necesarios. Ni que decir tiene, que si el repositorio es público, no hay que incluir archivos que incluyan claves.

De esta manera, los que somos muy aficionados a ir puliendo siempre configuraciones, podemos con sólo hacer push y pull, tener esas mejoras disponibles en todos nuestro equipos, ya sea para el editor, un cliente de irc o la configuración del gestor de ventanas. Y de paso, si alguien te pregunta por alguna configuración, puede ser tan sencillo como compartirle una url.

Mi dotfilesestá disponible en Github, por si a alguien le sirve.

Pablo Bernardo
Pablo Bernardo

Hola, soy Pablo. Soy programador frontend, padre, estudiante de zen y otras cosas. Para saber más, lee algunas entradas.