Il en existe un paquet d’autres, mais ce sont ces deux là qui ont retenu mon attention car ils répondent à mes besoins et semblent aussi être ceux qui font consensus.
Mes besoins sont les suivants :
- synchroniser ma config entre plusieurs machines, avec des OS différents
- conséquence du besoin précédent : pouvoir gérer simplement les différences entre les machines au sein d’un même fichier
- avoir un historique des modifications, afin de pouvoir revenir en arrière si besoin
- permettre un déploiement simple et rapide sur une nouvelle machine
- permettre de chiffrer/déchiffrer certains fichiers de manière transparente
- je veux un outil qui fait le job pour moi, pas un nouveau jouet à bidouiller
Actuellement j’utilise simplement Git, avec un alias pour faire pointer le
GIT_DIR
ailleurs, la méthode est décrite plus en détails ici pour ceux que ça
intéresse : https://www.atlassian.com/git/tutorials/dotfiles.
L’inconvénient principal est que le processus de bootstrap est un peu compliqué, et je ne veux plus bidouiller, je veux quelque chose qui fonctionne simplement. Donc si un outil peut me simplifier la vie, je suis preneur.
yadm
Descriptif :
- écrit en
PythonShell, pas de dépendances en dehors dePythonBash et Awk pour les templates (en fait ce sont les tests unitaires qui sont écrits en Python, je me suis fait avoir par les stats de GitHub) - un wrapper à Git, en gros
$HOME
est leGIT_WORK_TREE
, et sonGIT_DIR
est déporté dans~/.local/share/yadm/repo.git
Avantages :
- présent dans les dépôts de la plupart des distributions
- simple, les commandes peuvent se jouer depuis n’importe quel dossier
- si on maîtrise Git la prise en main est très rapide
- a une commande de bootstrap qui permet d’exécuter un script lors du bootsrap (déploiement sur une nouvelle machine)
Inconvénients :
- les “fichiers alternatifs” polluent le
$HOME
- la complétion du nom des fichiers est à la ramasse, problème connu qui n’a pas de solution
- le déchiffrement n’est pas transparent (sauf avec transcrypt), il faut exécuter une commande, ce n’est pas la mer à boire… et pour l’instant je ne l’utilise pas
chezmoi
Descriptif :
- écrit en Go
- créer un dossier
~/.local/share/chezmoi
, versionné avec Git, qui contient une copie (ou plutôt ce qui va être la source) des dotfiles
Avantages :
- le
$HOME
n’est pas pollué avec des fichiers templates, etc. - écrit en Go, donc le build est un binaire qui ne nécessite pas de dépendances
- propose plus d’options pour le chiffrement, dont le très prometteur age
- permet également de s’intégrer avec différents gestionnaires de mots de passe
- son auteur m’a contacté suite à la publication de cet article pour me donner quelques infos, et proposer de corriger le bug de template que je mentionne en conclusion :-)
Inconvénients :
- un poil plus complexe, par exemple il nécessite de se déplacer dans le repo pour commit ses changements (mais il est possible de faire de l’autocommit pour éviter ça)
Conclusion
Pour l’instant moi choix se porte davantage sur yadm, car :
il est écrit en Python, sans dépendances, et je maîtrise davantage ce langage que Go- l’utilisation est quasiment identique à celle de ma méthode actuelle, donc je n’ai pas à apprendre une nouvelle manière de faire
- chezmoi avait un bug de parsing de template, donc même si je préfère son approche, pas envie de déboguer ça
Commenter
Articles de blogs que je lis
Catalogue des vaisseaux imaginaires
Un livre qui donne envie de voyager et de lire : l'auteur a dressé un catalogue de bateaux qui apparaissent dans des œuvres de fiction. Chaque entrée résume le bateau, sa carrière, son rôle dans le roman, et est l'occasion de passer d'œuvres archi-connues à des textes bien moins célèbres.
– Blog de Stéphane Bortzmeyer · 21 mars 2023
De l’importance de comprendre ce qu’est une licence
De l’importance de comprendre ce qu’est une licence On entend souvent que les programmes informatiques ou les œuvres en ligne sont publiées sous une licence. Qu’est-ce que cela signifie ? Et en quoi est-ce important ? Pour simplifier, dans nos sociétés, tout échange se fait suivant un contrat. Ce contrat peut être implicite, mais il existe. Si j’achète une pomme au marché, le contrat implicite est qu’après avoir payé, je reçois ma pomme et je peux en faire ce que je veux. Pour les biens …
– Ploum.net · 14 mars 2023
#57 : Adaptation climatique : un coup de gueule salutaire
Cette semaine il s’est passé une chose dans l’actualité climatique française qui mérite de s’y attarder, au vu des incompréhensions et des controverses suscitées. L’info en question : la stratégie d’adaptation au changement climatique de la France va désormais s’appuyer aussi sur l’hypothèse d’un réchauffement de + 4°C (semble-t-il en France même si cela n’a pas été précisé) d'ici la fin du siècle... ce qui correspondrait à un
– Nourritures terrestres · 5 févr. 2023
Intelligence
« Attention, chatGPT est une IA générative. Ce n’est pas de l’intelligence, juste de la génération de texte vraisemblable par mimétisme. On peut d’ailleurs obtenir une réponse fausse donnée avec aplomb. Je l’ai entendu, je l’ai certainement dit aussi. Et pourtant, ça m’interroge. En quoi n’est-ce pas de l’intelligence justement ? Je ne suis pas certain que […]
– Carnet de notes · 21 mars 2023