Gérer ses fichiers .pacnew avec un lanceur GUI

Affichage de 1 message (sur 1 au total)
  • Auteur
    Articles
  • #13262
    nam1962nam1962
    Keymaster

      Sur Arch Linux et ses dérivées (Manjaro, EndeavourOS, et les autres), une mise à jour dépose parfois un fichier en .pacnew à côté d’un fichier de configuration. C’est la façon polie qu’a pacman de vous signaler une nouvelle version d’un réglage sans écraser le vôtre : à vous de comparer les deux et de reporter ce qui vous intéresse. Voici une méthode légère pour le faire, avec l’outil officiel d’Arch et un comparateur graphique.

      Il ne s’agit pas d’une interface graphique complète qui ferait tout à la souris. L’outil central, pacdiff, fonctionne en terminal : il vous présente un menu texte et n’ouvre le comparateur graphique que lorsque vous le demandez. C’est volontairement minimal, basé sur des briques maintenues par Arch, sans dépendance exotique à surveiller.

      Les deux outils

      1. pacdiff : l’utilitaire officiel d’Arch (paquet pacman-contrib). Il repère les fichiers .pacnew et .pacsave et propose, pour chacun, un menu d’action en terminal : voir, fusionner, ignorer, supprimer le pacnew, écraser avec le pacnew, quitter.
      2. meld : un comparateur de fichiers graphique, à deux ou trois volets, avec couleurs et report de blocs d’une version à l’autre. C’est lui qui s’ouvre quand vous choisissez « voir » ou « fusionner » dans pacdiff.

      Pour les installer s’ils manquent :

      sudo pacman -S pacman-contrib meld

      Indiquer Meld à pacdiff

      pacdiff utilise vimdiff par défaut. Pour qu’il ouvre Meld à la place, on lui passe la variable DIFFPROG. La commande de base, à lancer dans un terminal :

      DIFFPROG=meld sudo --preserve-env=DIFFPROG pacdiff

      pacdiff a besoin des droits root pour lire et écrire les fichiers de /etc. Le --preserve-env=DIFFPROG conserve votre choix de Meld à travers le sudo.

      Un lanceur pour le confort

      Pour ne pas retaper cette commande, vous pouvez créer un raccourci dans votre menu d’applications. Il ouvrira un terminal sur pacdiff : vous gardez l’interaction clavier, mais le lancement se fait en un clic.

      Créez d’abord un petit script ~/bin/pacdiff-meld.sh :

      cat > ~/bin/pacdiff-meld.sh << 'FIN'
      #!/usr/bin/env bash
      # Lance pacdiff (outil officiel) avec Meld comme comparateur.
      # Interaction en terminal : menu pacdiff, Meld s'ouvre a la demande.
      echo "Recherche des fichiers .pacnew et .pacsave..."
      echo
      DIFFPROG=meld sudo --preserve-env=DIFFPROG pacdiff
      echo
      echo "Appuyez sur Entree pour fermer."
      read -r
      FIN
      chmod +x ~/bin/pacdiff-meld.sh

      Puis le raccourci de menu ~/.local/share/applications/pacdiff-meld.desktop :

      cat > ~/.local/share/applications/pacdiff-meld.desktop << 'FIN'
      [Desktop Entry]
      Version=1.0
      Type=Application
      Name=Pacdiff (Meld)
      Comment=Traiter les fichiers .pacnew avec pacdiff et Meld
      Exec=xfce4-terminal --title="Pacdiff" --command="/home/VOTREUSER/bin/pacdiff-meld.sh"
      Icon=org.gnome.meld
      Terminal=false
      Categories=System;Settings;
      Keywords=pacnew;pacsave;pacdiff;config;merge;
      FIN
      update-desktop-database ~/.local/share/applications

      Remplacez VOTREUSER par votre nom d’utilisateur. Sous un autre environnement que Xfce, remplacez xfce4-terminal par votre terminal (par exemple konsole, gnome-terminal, alacritty), en adaptant l’option de lancement de commande.

      À l’usage

      Au lancement, pacdiff liste le premier .pacnew trouvé et affiche son menu :

      :: (V)iew, (M)erge, (S)kip, (R)emove pacnew, (O)verwrite with pacnew, (Q)uit
      1. V (View) : ouvre Meld pour comparer votre fichier actuel et le .pacnew, en lecture.
      2. M (Merge) : ouvre Meld en mode édition pour reporter les changements et enregistrer le résultat.
      3. S (Skip) : passe ce fichier sans rien changer.
      4. R (Remove pacnew) : supprime le .pacnew en gardant votre version. Utile quand votre fichier actuel vous convient et que la nouvelle version ne vous apporte rien.
      5. O (Overwrite) : remplace votre fichier par le .pacnew. À n’utiliser que si vous voulez vraiment la version par défaut.
      6. Q (Quit) : quitte.

      Vous tapez la lettre voulue, vous validez, et pacdiff passe au fichier suivant.

      Remerciements

      L’idée de me pencher sur une méthode graphique pour les .pacnew m’est venue grâce à pacnew-chaser, l’outil créé par papajoke, qui propose une véritable interface graphique dédiée et a rendu service pendant des années à la communauté francophone de Manjaro. Si vous cherchez une GUI complète plutôt qu’une méthode en terminal comme celle décrite ici, son outil mérite le coup d’oeil. Merci à lui pour l’inspiration.

      Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc

    Affichage de 1 message (sur 1 au total)
    • Vous devez être connecté pour répondre à ce sujet.