tag:linuxfr.org,2005:/tags/dotfiles/publicLinuxFr.org : les contenus étiquetés avec « dotfiles »2017-08-24T14:34:23+02:00/favicon.pngtag:linuxfr.org,2005:Diary/374492017-08-18T19:19:46+02:002017-08-18T19:19:46+02:00kyrbeis: un outil basique de gestion de dotfilesLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Mon bien cher Nal,</p>
<p>Voulant synchroniser simplement des fichiers de configuration utilisateur, j'ai tout d'abord testé quelques-uns des outils énumérés <a href="https://wiki.archlinux.org/index.php/Dotfiles#Other_tools">ici</a>.</p>
<p>Je voulais un outil:</p>
<ul>
<li>simple d'utilisation</li>
<li>fondé sur les liens symboliques, comme <a href="https://github.com/jbernard/dotfiles">dotfiles</a>
</li>
</ul><p>Je voulais aussi utiliser git (et <a href="https://www.agwa.name/projects/git-crypt/">git-crypt</a> pour chiffrer les fichiers sensibles).<br>
Trouvant les outils testés trop compliqués (<a href="https://github.com/jbernard/dotfiles/issues/62">voir risqués</a>), j'ai décidé d'écrire une gem ruby de quelques lignes, <a href="https://github.com/yazgoo/kyrbeis/">kyrbeis</a> pour faire cela.</p>
<p>Je me suis dit que cela pourrait aussi éventuellement vous intéresser, voilà donc comment vous pourrez l'utiliser.</p>
<h2 id="installation">installation</h2>
<pre><code>$ gem install kyrbeis
</code></pre>
<h2 id="utilisation">utilisation</h2>
<p>Créez un répertoire <code>~/dotfiles</code>, dans lequel vos configurations seront stockées.<br>
Pour ajouter un nouveau fichier de configuration, par exemple <code>~/.vimrc</code>,<br>
créez <code>~/dotfiles/__vimrc</code> dans lequel vous écrirez votre configuration vim comme d'habitude.<br>
Puis, en prenant soin que <code>~/.vimrc</code> n'existe pas déjà (auquel cas kyrbeis ne fera rien) faites un:</p>
<pre><code>$ kyrbeis apply
</code></pre>
<p>ce qui est équivalent à faire un <code>ln -s ~/dotfiles/__vimrc ~/.vimrc</code>.</p>
<p>Kyrbeis supporte aussi les sous répertoires, comme <code>~/.config/</code>.<br>
Par exemple, pour ajouter un fichier <code>~/.config/git/ignore</code>, vous créerez <code>~/dotfiles/__config/git/ignore</code>.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Évidemment, cet outil prend son sens combiné a git, (ainsi que git-crypt, et à un gestionnaire de mot de passe).</p>
<p>Et vous, cher Nal, quelle méthode utilisez-vous pour résoudre ce problème ?</p><div><a href="https://linuxfr.org/users/yazgoo/journaux/kyrbeis-un-outil-basique-de-gestion-de-dotfiles.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/112496/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/yazgoo/journaux/kyrbeis-un-outil-basique-de-gestion-de-dotfiles#comments">ouvrir dans le navigateur</a>
</p>
yazgoohttps://linuxfr.org/nodes/112496/comments.atomtag:linuxfr.org,2005:Diary/357962015-04-16T23:09:34+02:002015-04-16T23:09:34+02:00Gérer ses fichiers de config avec gitLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Je continue sur ma <a href="//linuxfr.org/users/perdu/journaux/faire-de-la-magie-avec-son-inputrc">lancée</a> des trucs qui <em>enlarge my productivity</em>. Aujourd'hui, voyons comment gérer efficacement ses fichiers de config directement avec git.</p>
<p>Comment gérez-vous les fichiers de configs répartis sur vos différentes machines ? Les synchronisez-vous de temps en temps à coup de scp, rsync ou unison ? Peut-être utilisez-vous un outil évolué comme vcsh ? Mais savez-vous que si ce dernier est une surcouche à git dédiée à la gestion des fichiers de configuration, git seul peut faire l'affaire ?</p>
<p>Bien sûr, tout serait simple si tous les logiciels enregistraient leurs fichiers de configuration dans ~/.config, mais ce n'est pas le cas : beaucoup l'enregistrent directement dans le dossier home. Il va donc falloir versionner tout le dossier home. Oui, c'est sale, j'en vois déjà s'agiter derrière leur clavier ! Mais pas de panique, on va commencer par tout ignorer par défaut :</p>
<pre><code class="bash"><span class="nb">echo</span> <span class="s1">'*'</span> > ~/.gitignore</code></pre>
<p>Il faudra donc par la suite ajouter les fichiers avec git add -f. Mais pour commencer, créons notre dépôt, comme un dépôt git normal :</p>
<pre><code class="bash">git init --bare <répertoire_dédié></code></pre>
<p>Une fois le dépôt créé, on va pouvoir le cloner sur chaque machine concernée.</p>
<pre><code class="bash"><span class="nb">cd</span> <span class="c"># pour revenir dans son home</span>
git init
git remote add origin/master <adresse du dépôt>
<span class="c"># Supprimer/sauvegarder les fichiers potentiellement écrasés avant de pull (.bashrc notamment)</span>
git pull origin/master master</code></pre>
<p>Avant de pouvoir commencer à envoyer des commits au serveur, il faudra encore exécuter la commande suivante, pour indiquer qu'on veut push sur la branche master du dépôt distant :</p>
<pre><code class="bash">git push --set-upstream origin/master master</code></pre>
<p>Et, si ce n'est pas déjà défini dans votre .gitconfig, pensez à définir votre nom ainsi que votre adresse mail :</p>
<pre><code class="bash">git config --global user.email <span class="s2">"toto@perdu.com"</span>
git config --global user.name <span class="s2">"Erika Mustermann"</span></code></pre>
<p>Et voilà, c'est tout ! Vous pouvez à présent gérer vos fichiers de config comme n'importe quel dépôt git, à l'exception près qu'il faut ajouter les fichiers avec git add -f. Très pratique pour effectuer fréquemment des changements et les diffuser sur ses différentes machines ! Et le versionnage vous permettra de retrouver rapidement une modification effectuée, annuler une config qui-casse-tout…<br>
Faites bien attention de n'ajouter que les fichiers de configuration modifiés uniquement par l'utilisateur, et non pas les différents fichiers de cache (n'ajoutez pas votre .emacs.d/ en entier, par exemple). On regrettera d'ailleurs que certains logiciels tels thunderbird/icedove placent les configs utilisateurs et différentes options modifiées en permanence (dernier dossier ouvert, etc.) dans le même fichier, ce qui empêche un versionnage pratique.</p>
<p>Voilà, bonne gestion de vos dizaines de machines !</p><div><a href="https://linuxfr.org/users/perdu/journaux/gerer-ses-fichiers-de-config-avec-git.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/105468/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/perdu/journaux/gerer-ses-fichiers-de-config-avec-git#comments">ouvrir dans le navigateur</a>
</p>
Perduhttps://linuxfr.org/nodes/105468/comments.atom