DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Web Dev Zone»Gestion des fichiers de points avec Stow
    Web Dev Zone

    Gestion des fichiers de points avec Stow

    novembre 29, 2022
    Gestion des fichiers de points avec Stow
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    En tant que programmeur, une grande partie de notre temps au travail est consacrée à développer du code (et à assister à des réunions, bien sûr. ), À tel point que nous passons généralement beaucoup de temps à configurer l’ensemble d’outils que nous utilisons au quotidien. On ne parle pas seulement de l’évolution de la configuration mais aussi de la façon de configurer son nouveau portable, d’avoir plusieurs ordinateurs, ou tout simplement de partager une certaine configuration d’un certain outil avec un collègue.

    La grande majorité des applications (et plus encore dans les systèmes UNIX) sont configurées via les « dotfiles » bien connus (stockés dans le $HOME de l’utilisateur), qui ne sont rien de plus que des fichiers ou des dossiers commençant par un . pour configurer les applications (ex : .bashrc, .git/). Le but de commencer par un point est que, par défaut, les systèmes d’exploitation les traitent comme des fichiers cachés et ne les affichent pas à moins que vous ne leur disiez de le faire.

    Avant de commencer, expliquons les trois termes que nous devons connaître pour travailler avec STOW, qui sont : Package, Stow Directory et Target Directory.

    1. Package : C’est une collection de fichiers qui doivent être « installés » ensemble dans le même répertoire cible.
    2. Stow directory : C’est le dépôt où seront tous nos packages.
    3. Répertoire cible : C’est le répertoire où nous voulons installer les configurations qui se trouvent dans nos packages.

    Package, Stow Directory et Target Directory

    La fonctionnalité que nous recherchons, Stow, générera un lien symbolique des fichiers que nous avons à l’intérieur de nos packages dans le répertoire cible. Dans l’exemple, si nous exécutons stow gitil créera un lien de ~/.gitconfig vers ~/.dotfiles/git/.gitconfig.

    Dans ce cas, la convention décidée par la communauté est de tout placer dans un répertoire appelé .dotfiles à l’intérieur de notre maison, mais c’est quelque chose qui peut être apprécié en lisant des forums et des articles sur la gestion des dotfiles. Il a une certaine logique puisque, dans stow, par défaut, le répertoire cible est le parent du répertoire stow. Cela signifie que si nous plaçons ~/.dotfiles comme répertoire de stockage, le répertoire cible sera ~/, où nous voudrons placer nos fichiers de points.

    Le but de cet article est de sortir notre configuration git (.gitconfig) et zsh (.zshrc) de notre maison sans aucun contrôle et de la déplacer dans notre dossier .dotfiles, où nous pouvons la télécharger dans un référentiel git (ranger avec git a une très bonne synergie), synchronisez-le avec Dropbox, ou ce que nous aimons.

    Pour commencer, nous allons créer notre répertoire stow, qui peut être où nous voulons, mais dans cet article, nous utiliserons ~/.dotfiles pour les raisons qui ont été expliquées précédemment. Maintenant, nous allons commencer à créer la configuration git. Pour cela, nous allons créer notre git package à l’intérieur de notre répertoire stow, et à l’intérieur, les fichiers de configuration liés à git que nous voulons créer un simlink dans le répertoire cible.
    Dans ce cas, ce ne sera que notre .gitconfig :

    $ cd ~
    $ mkdir -p .dotfiles/git
    
    $ touch .dotfiles/git/.gitconfig

    Maintenant, ce que nous cherchons, c’est de copier le contenu du .gitconfig avec la configuration actuelle qui se trouve dans le $HOME de l’utilisateur (~/.gitconfig), et de le coller dans le nouveau fichier généré à l’intérieur de notre répertoire stow.
    Pour cela, nous allons lancer la commande stow avec les paramètres -adopt, -n, et -v, et en argument, nous lui dirons que nous voulons stow dans le dossier git : stow -adopt -nv git.

    Expliquons ce que fait chaque option séparément :

    • -n : Avec cette option, nous disons à stow de n’exécuter aucune action ; dites-nous ce qu’il a l’intention de faire si nous supprimons l’option.
    • -v : Cette option est celle qui va nous permettre de lire ce que stow a l’intention de faire (au final, c’est pour augmenter le niveau de verbosité).
    • -adopter: Cette option est la seule qui modifie le répertoire stow ; tous les autres se concentrent sur le répertoire cible. Avec cette option, ce que nous faisons, c’est qu’avant stowear, il déplacera le fichier actuel du répertoire cible vers le répertoire stow, puis créera le lien. Très utile lorsque nous commençons à créer nos fichiers .dot.

    Une fois que nous voyons les actions qu’il va faire, nous avons juste besoin de supprimer le -n option de la commande pour l’exécuter :

    Avec cela, nous pouvons voir comment enregistrer la configuration actuelle dans nos fichiers .dot et comment stow gère facilement tous les liens.

    Pour terminer l’article, je voudrais commenter de manière résumée les autres choses que j’ai dû faire avec le rangement :

    • Supprimez le lien d’une configuration : stow -D (par défaut, .est en mode lien, c’est-à-dire -S).
    • Que se passe-t-il si nous supprimons un fichier de notre répertoire stow (~/.dotfiles) qui était déjà stocké ? Le fichier n’existe pas, mais le lien est toujours là ; pour cela, nous avons stow -R, qui est essentiellement un raccourci vers stow -D && stow -S.
    • Si, pour une raison quelconque, vous ne souhaitez pas avoir votre référentiel dotfiles dans le home (pe: ~/projects/dotfiles), et étant donné que le répertoire cible est le parent (dans ce cas, ce sera ~/projects) , il faut rendre explicite où on veut créer les liens de configuration, pour cela il faut utiliser stow -t=~.
    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.