[yaourt] Nouvelle fonction automerge des fichiers de conf

Annonces, dépannage, évolution du projet yaourt
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

[yaourt] Nouvelle fonction automerge des fichiers de conf

Message par wain »

Oyé oyé braves gens !
Depuis 2 jours, si vous avez mis à jour yaourt-git (dispo sur AUR), vous pouvez désormais activer une fonction nommée "AutoSaveBackupFile" dans votre fichier yaourtrc.

Que fait cette fonction AutoSaveBackupFile?
A chaque installation d'un paquetage, yaourt va scruter votre disque dur à la recherche des nouveaux fichiers .pacnew (ces fichus fichiers de config qui bougent tout le temps) et va tout simplement les sauvegarder dans un coin pour plus tard. Comptez donc 1 à 2 secondes perdues à chaque mise à jour ou installation de paquetage.

Quel est l'intérêt de sauvegarder ces fichiers .pacnew ?
La première fois qu'on sauvegarde un fichier .pacnew, rien ne se passe. La fois suivante par contre, nous sommes en mesure d'établir les différences entre deux versions du même fichier. C'est là que yaourt -C entre en jeu. Comme à l'habitude (quoi c'est pas une habitude ?), lancez yaourt -C pour vérifier les modifications de vos fichiers de conf et constatez que yaourt propose de fusionner automatiquement les nouveautés.

Explication par l'exemple:
On lance yaourt -C. Le programe trouve 3 fichiers .pacnew, donc 3 fichiers qui contiennent des changement peut-être importants.
--------------------------------------------
fichiers .pacnew
--------------------------------------------
Une nouvelle version de ces fichiers est disponible
Ces fichiers .pacnew peuvent contenir des améliorations
1. Le 08/15/2008 à 13:13:46: /etc/yaourtrc[.pacnew] **fusion automatique possible**
2. Le 07/16/2008 à 20:48:21: /etc/shadow[.pacnew]
3. Le 07/16/2008 à 20:48:21: /etc/passwd[.pacnew]
==> Entrez le nombre du fichier à modifier ou appuyez sur ENTRER
==> ----------------------------------------------
==> 1
On voit que pour le fichier yaourtrc, il est possible d'appliquer automatiquement les changements. On tape 1.
==> Que voulez vous faire avec /etc/yaourtrc[.pacnew] ?
1: Voir les différences avec gvim en mode expert
2: Voir les différences avec vimdiff (dans une console)
3: Voir les différence avec kompare
4: Voir les différence avec kdiff3
5: gvim en mode facile
6: Entrer une commande pour éditer
S: Supprimer le fichier .pacnew
R: Remplacer le fichier actuel par le .pacnew
A: Fusionner automatiquement avec le .pacnew (utilise les différences entre yaourtrc-0.9-1 et yaourtrc-0.9.1-1)
==> Appuyez sur ENTRER pour revenir au menu
==> ----------------------------------------------
==> A
Ici, on choisit "A".

Ce qui nous donne en couleur (si vous avez installé colordiff):
==> /etc/yaourtrc: différence entre yaourtrc-0.9-1 et yaourtrc-0.9.1-1
--- yaourtrc-0.9-1 2008-04-29 20:46:12.000000000 +0200
+++ yaourtrc-0.9.1-1 2008-04-29 20:46:30.000000000 +0200
@@ -10,6 +10,7 @@
# AlwaysUpgradeAur no
# AlwaysForce no
# AurVoteSupport yes
+# AutoSaveBackupFile no
# ColorMod Normal
# ColorMod LightBackGround
# ColorMod NoColor
@@ -17,6 +18,7 @@
# DontNeedToPressEnter yes
# EditPkgbuild yes
# ExportToLocalRepository /where/you/want
+# ForceEnglish no
# LastCommentsNumber 5
# LastCommentsOrder asc
# NoConfirm no
==> Voulez vous vraiment appliquer le patch ci-dessous ? [O/n]
==> ----------------------------------------------
==>
Yaourt nous affiche donc les modifications qu'il s'apprête à intégrer. Ici on voit qu'entre yaourt 0.9 et 0.9.1, les deux options "Autosavebackupfile" et "Forceenglish" ont été ajoutées.
Le patch sera testé avant d'être réellement appliqué. En cas d'erreur, aucun fichier n'est modifié et une copie du patch est conservée dans /tmp/ pour qu'on puisse réaliser manuellement l'opération. La fusion automatique est donc une fonction sûre.

C'est magique et miraculeux ?
Non, malheureusement cette méthode a ses limites. Elle ne permet que de fusionner les modifications à venir et ne corrigera pas entièrement vos fichiers présents. Il est donc conseillé de faire un bon ménage dans vos fichiers de conf avant tout avec gvimdiff par exemple, pour que vos fichiers soient aussi proches que possible des fichiers originaux distribués avec les paquetages.
Il reste encore plusieurs choses à apporter à yaourt, comme la possibilité de fusionner les modification depuis un fichier .pacsave, et biensûr plus tard une fonction "tout auto", qui fera tout le nettoyage automatiquement sans action de l'utilisateur :D

Il n'y a biensûr aucun bug dans cette version et si vous en trouvez un, gardez-le pour vous :twisted:
Répondre