Gérer ses fichiers de configuration sous Linux avec Stow

2021/01/09

Categories: logiciel Tags: linux

GNU Stow est un projet de la fondation GNU se présentant comme un gestionnaire de liens symboliques.

Pour rappel un lien symbolique est un raccourci vers un fichier stocké ailleurs sur le disque. Ainsi, la lecture ou l’écriture d’un lien symbolique redirigera vers le fichier original. En revanche, la suppression du lien symbolique n’entraîne pas la suppression du fichier original.

Stow permet de mieux gérer les nombreux fichiers de configuration présents sous Linux en créant des liens symboliques à partir d’un dossier contenant tous vos fichiers de configuration. En effet, une fois centralisés dans un même répertoire, vos fichiers de configuration seront plus facile à retrouver, à modifier et à versionner (sous git par exemple).

Ces fichiers aussi appelés dotfiles (en référence au point précédent leur nom indiquant que ce sont des fichiers cachés) se trouvent généralement à la racine du dossier utilisateur (~/) ou dans un dossier .config (~/.config).

Le programme stow est très simple à prendre en main. Prenons pour l’exemple un dossier ~/dotfiles contenant l’arborescence suivante :

dotfiles/
    vim/
        .vimrc/
    nvim/
        .config/
            nvim/
                init.vim/
    NetworkManager/
        no-systemd-resolved.conf/
        unmanaged.conf/
        wifi-backend.conf/

Ce dossier contient 3 sous-dossiers, chacun contenant des fichiers de configuration pour les programmes suivants :

En lançant la commance stow suivi d’un nom de dossier nous allons créer les liens symboliques dans le dossier parent de l’emplacement actuel (emplacement actuel : ~/dotfiles, emplacement de destination : ~/).

Ainsi, pour créer les liens symboliques pour les fichiers de configuration de vim et de nvim :

cd dotfiles
stow vim
stow nvim

Pour NetworkManager, il existe l’argument -t qui permet de changer le dossier dans lequel les liens symboliques seront créés (le paramètre par défaut étant le dossier parent de l’emplacement courant) :

stow -t /etc/NetworkManager/conf.d NetworkManager

Pour plus d’exemples de fichiers de configuration gérés avec stow, vous pouvez retrouver mes propres dotfiles sur github.

>> Home