De configuraciones y puntos

Hola chiquillos,

Este título extraño viene porque voy a hablar de archivos de configuración para sistemas UNIX (como tu GNU-Linux favorito). Muchos programas, como Vim, Bash, Git, Tmux, etc. utilizan archivos ocultos en nuestra carpeta personal para guardar su configuración.

Como, muchos ya sabréis, los archivos ocultos en UNIX empiezan por un punto. Por ejemplo: ‘.vimrc’, ‘.bash_aliases’, etc1. Es por eso que a estos archivos de configuración se les conoce como Dotfiles2.

En general, estos archivos definen el comportamiento de los programas y toda la personalización que el usuario ha hecho, por lo que son relativamente importantes. Perderlos puede desatar el pánico si tu sistema tiene una configuración complicada.

Para evitar situaciones desagradables suelen mantenerse bajo control de versiones (ya que son archivos de texto plano generalmente3) y esto es lo que quería explicar hoy.

Ya he mencionado alguna vez sistemas de control de versiones (creo que he hablado de Git, pero hay otros: Subversion, Mercurial…) así que me voy a saltar un poco esa parte y os voy a dejar un link a mis propios dotfiles en GitHub donde podéis ver como configuro yo algunas de mis cosas y podéis copiar, aportar ideas o preguntar por qué, etc:

https://github.com/ekaitz-zarraga/dotfiles

Haciendo esto, tendríamos nuestros dotfiles bajo control de versiones en un servidor externo, por lo que podríamos recuperarlos si se nos borran, podríamos copiarlos en otro equipo con facilidad, o podríamos ver cómo han ido evolucionando con el tiempo y podríamos ir atrás en cambios que hayamos hecho. Todo ventajas.

Sin embargo, como veis, el orden de estos archivos no es como deberían estar en nuestra carpeta personal, si no que aquí están agrupados por programa. Aquí es cuando entra una herramienta superchula llamada Stow.

Stow es un gestor de symlinks o enlaces simbólicos con el que podemos crear referencias a nuestros archivos en la carpeta personal para que el sistema pueda acceder a nuestro proyecto con los dotfiles a través de ellas. Podríamos también hacer los links a mano pero es un poco coñazo (comando ln).

Si vamos nuestra carpeta con los dotfiles y lanzamos Stow, añadiendo el directorio donde queremos añadir los enlaces (en nuestro caso el directorio personal, es decir, ~) nos creará enlaces al lugar, tal que así:

dotfiles$ stow vim -t ~
dotfiles$ ls -la ~
26 Dec 19 23:37 .vim -> projects/dotfiles/vim/.vim
28 Dec 19 23:37 .vimrc -> projects/dotfiles/vim/.vimrc
...

(He resumido la salida del comando ls para que podáis verlo mejor)

De esta forma, nuestra configuración quedará ordenada en nuestra carpeta con los dotfiles y en nuestra carpeta personal referenciaremos ahí.

Esto es muy interesante porque, por ejemplo, si hacemos cambios en nuestra configuración en el trabajo porque hemos añadido alguna característica, con hacer un git pull en casa ya tendríamos la misma configuración y no tendríamos que volver a editar los dotfiles en nuestro directorio personal porque ya estarían haciendo referencia a los que manejamos con el sistema de control de versiones.

Y simplemente quería contaros un poco esto y ya de paso hacer que investiguéis cosas interesantes a cerca de los sistemas UNIX que hemos tocado para hacer esto. Recapitulando:

  • Archivos ocultos.

  • Hard and soft links.

  • Control de versiones.

  • Filosofía UNIX y los archivos de texto plano.

Investigad un poco y me contáis. 🙂

Además, más arriba os he dejado el link a mis dotfiles, podéis mirar un poco y sugerirme mejoras, preguntarme cosas, o lo que queráis.

Un abrazo.


  1. Podéis verlos haciendo un ls -a por ejemplo. Os dejo un link de la wikipedia que explica un poco más
  2. Ya sabéis, inglés y esas cosas: Dot => Punto. File => Archivo. 
  3. Eso es parte de la filosofía UNIX. Ficheros de texto plano everywhere. 
Anuncios

7 pensamientos en “De configuraciones y puntos

  1. Vim, ese pedazo de editor – Free Hacks!

  2. Vim para escribir – Free Hacks!

  3. Lo que he aprendido: imitando a Stow con mklink | Onda Hostil

  4. Reventando la Terminal – Free Hacks!

  5. Instalando elementaryOS Loki | Onda Hostil

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s