De nombreux logiciels enregistrent leurs préférences dans des fichiers textes, en tout cas sur les systèmes d’exploitation de type UNIX/Linux, les logiciels Windows utilisant plutôt la base de registre.
Ces fichiers sont généralement sauvegardés dans le répertoire personnel de l’utilisateur mais avec un nom préfixé par le caractère ‘.’ afin qu’ils n’apparaissent pas par défaut dans le gestionnaire de fichiers et restent masqués. On parle alors de dotfiles.

Dans le cas où l’on utilise les mêmes logiciels sur plusieurs machines différentes, avoir à reconfigurer systématiquement chaque poste devient vite fastidieux.
Il existe plusieurs manières de gérer ses fichiers de configuration afin de permettre leur partage, celle que je présente dans ce billet se base sur le logiciel GNU Stow qui permet de gérer l’installation de logiciels à l’aide de liens symboliques. L’utiliser pour gérer ses fichiers de configuration n’est pas sa fonction première mais il s’y prête très bien.

Mise en place

La première chose à faire est de créer un répertoire où seront stockés tous les fichiers de configuration, par exemple ~/dotfiles. Ce répertoire contient un sous-répertoire par logiciel dont on souhaite partager la configuration. Chacun de ses sous-répertoires contient le ou les fichiers de configuration, en conservant l’arborescence nécessaire.
Par exemple dans mon cas je souhaite partager ma configuration git et maven :

dotfiles/
    git/
        .gitconfig
    maven/
        .m2/
            settings-security.xml
            settings.xml

Comme vous pouvez le voir chaque sous-répertoire conserve l’arborescence nécessaire aux fichiers de configuration. Afin “d’installer” la configuration de git, il me suffit d’utiliser la commande stow git et stow va automatiquement créer un lien symbolique dans mon répertoire personnel nommé .gitconfig qui pointera vers le fichier de mon répertoire dotfiles/git.

Il ne reste plus qu’à versionner (avec Git !) mes fichiers de configuration et les partager, par exemple avec GitHub.
Attention par contre à vos fichiers de configuration contenant des informations sensibles (clé de sécurité, token), vérifier bien que vous ne les partagez pas !