[gestion pacnew] fusionner des fichier .pacnew facilement

Questions et astuces concernant l'installation et la configuration d'archlinux
barrydumoulin
Hankyu
Messages : 18
Inscription : sam. 28 avr. 2018, 12:25

[gestion pacnew] fusionner des fichier .pacnew facilement

Message par barrydumoulin » sam. 28 avr. 2018, 12:35

Bonjour,
Je commence petit à petit à me faire la main sur Archlinux, et je passe beaucoup de soirée à lire le wiki.
Cependant, j'ai une question à laquelle je ne trouve pas de réponse claire.
Je comprends bien le fonctionnement des fichiers pacnew. Il est créé si la version upstream d'un fichier de conf est différent de la version de l'utilisateur.
J'ai eu le cas pour /etc/locale.gen
Alors j'utilise bien pacdiff pour voir les différences. Dans le pacnew, certaines langues étaient ajoutées, mais le français était re commenté.
Comment peut-on facilement fusionner les deux fichiers ? C'est à dire, utiliser la version upstream avec les dernières nouveautés, mais en gardant les modifications de l'utilisateur.
Parce que je vois mal pour chaque pacnew, supprimer le .conf, le remplacer par le pacnew, et rééditer toutes ses modifications, à chaque mise à jour pour plusieurs programmes.
Merci d'avance pour votre aide.

Avatar de l’utilisateur
waitnsea
Maître du Kyudo
Messages : 1976
Inscription : jeu. 15 mars 2012, 05:08

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par waitnsea » sam. 28 avr. 2018, 13:44

barrydumoulin a écrit :
sam. 28 avr. 2018, 12:35
Bonjour,
Je commence petit à petit à me faire la main sur Archlinux, et je passe beaucoup de soirée à lire le wiki.
Cependant, j'ai une question à laquelle je ne trouve pas de réponse claire.
Je comprends bien le fonctionnement des fichiers pacnew. Il est créé si la version upstream d'un fichier de conf est différent de la version de l'utilisateur.
J'ai eu le cas pour /etc/locale.gen
Alors j'utilise bien pacdiff pour voir les différences. Dans le pacnew, certaines langues étaient ajoutées, mais le français était re commenté.
Comment peut-on facilement fusionner les deux fichiers ? C'est à dire, utiliser la version upstream avec les dernières nouveautés, mais en gardant les modifications de l'utilisateur.
Parce que je vois mal pour chaque pacnew, supprimer le .conf, le remplacer par le pacnew, et rééditer toutes ses modifications, à chaque mise à jour pour plusieurs programmes.
Merci d'avance pour votre aide.
Bonjour,
A priori tu devras plutôt supprimer les pacnew que les fusionner, car les fichiers "old" sont ceux que, justement, tu as modifié pour configurer le programme mis à jour.
Si tu tiens à les examiner et/ou les fusionner, tu acceptes l'option, et c'est vimdiff qui les ouvrira (syntaxe de vim) ou, en graphique tu notes l'emplacement et tu utilises par exemple diffuse , par sudo
LENOVO Y700-341SH i7-6700 3.4gHZ 1 SSD + 2HDD - Arch/KDE - NVidia GeForce GTX 750 T
Sauvegardes quotidiennes de mes système et données par BORG

barrydumoulin
Hankyu
Messages : 18
Inscription : sam. 28 avr. 2018, 12:25

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par barrydumoulin » sam. 28 avr. 2018, 14:27

Mais, si je supprime simplement les pacnew, je ne disposerai plus jamais d'un fichier de conf disposant des dernières mise à jour, je resterai avec le fichier dans l'état dans lequel je l'ai modifié.
Moi ce que je veut, c'est garder mes modifications, mais ajouter automatiquement les ajouts apporté par le fichier de conf en upstream.
Avec pacdiff, je sais afficher les modifications, mais je peux juste remplacer le .conf par le .conf.pacnew, ou alors supprimer le pacnew. Ce que j'aimerais c'est vraiment les fusionner.
J'ai un peu du mal à expliquer ce que je pense, je suis nouveau dans archlinux, donc peut être que je ne comprends pas hyper bien le concept de ces pacnew...

Avatar de l’utilisateur
papajoke
Elfe
Messages : 535
Inscription : sam. 30 août 2014, 19:54
Contact :

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par papajoke » sam. 28 avr. 2018, 14:28

bonjour
il n'est pas possible d'avoir une procédure automatique car il y a plusieurs cas :
- tu as fait un changement perso et le pacnew upstream n'a pas changé depuis (ignore pacnew)
- tu as fait un changement perso et le pacnew upstream a changé depuis ta modif (fusion dans les 2 sens)
- tu n'as pas fait de changement perso mais le pacnew upstream a changé à la mise à jour (garde pacnew si les nouveautés sont ok pour toi - pas toujours le cas)

Dans tous les cas, il faut que nous fassions un contrôle manuel ! et oui cela prend un peu de temps. mais cela nous oblige à lire les man et parfois le wiki donc c'est une bonne chose au final. Nous contrôlons "finement" les réglages de notre distribution, c'est justement la force de archlinux, vouloir automatiser va justement à l'encontre de l’esprit archlinux.

Dans n'importe quel .pacnew nous pouvons avoir une nouvelle option par défaut qui ne nous convient pas ! donc une automatisation n'est pas bonne.
Dernière modification par papajoke le sam. 28 avr. 2018, 14:48, modifié 1 fois.
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau

barrydumoulin
Hankyu
Messages : 18
Inscription : sam. 28 avr. 2018, 12:25

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par barrydumoulin » sam. 28 avr. 2018, 14:44

Ok Je comprends. Donc pour pouvoir gérer ça, la seule solution, c'est de regarder les différences, et de rééditer manuellement le .pacnew avec nos modifications et supprimer le .conf du coup ? Pacdiff permet de visualiser le .conf et le .conf.pacnew et d'en montrer les différences, mais est-ce possible de, dans cette même fenêtre, d'éditer le pacnew manuellement directement et de remplacer directement le .conf par le .conf.pacnew, sans quitter le mode double fenêtre ?

Et que pensez vous de Pacmerge, et etc-update ?

Avatar de l’utilisateur
albireo
Chu Ko Nu
Messages : 420
Inscription : ven. 15 sept. 2006, 15:47
Localisation : vallée de la save en Occitanie

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par albireo » dim. 29 avr. 2018, 08:37

moi j'utilise meld pour gerer les pacnew, c'est très rapide, on voit les deux fichiers avec leur différence et on peut les modifier ou non très rapidement.
Utilisateur ArchLinux depuis 2004
Arch 64/gnome sur ASUS H87M-E C2 + i5 3.2GHz + 8Go + 1To + écran 22"
Arch 64/openbox sur LDLC MERCURE ML3-4-S1 -> DAC Micromega -> ampli Onkyo -> enceintes Focal :D

Avatar de l’utilisateur
waitnsea
Maître du Kyudo
Messages : 1976
Inscription : jeu. 15 mars 2012, 05:08

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par waitnsea » dim. 29 avr. 2018, 10:34

barrydumoulin a écrit :
sam. 28 avr. 2018, 14:44
Et que pensez vous de Pacmerge, et etc-update ?
Très bien etc-update, pour moi en fin de script de MaJ, après la gestion des pacnew que j'appelle par $ yaourt -C
Je ne fusionne jamais les pacnew, j'édite (mais pas pour pacman.conf.pacnew ou mirrorlist.pacnew - à virer sans un regard !) soit en cli soit en GUI, selon l'importance du fichier
LENOVO Y700-341SH i7-6700 3.4gHZ 1 SSD + 2HDD - Arch/KDE - NVidia GeForce GTX 750 T
Sauvegardes quotidiennes de mes système et données par BORG

Avatar de l’utilisateur
papajoke
Elfe
Messages : 535
Inscription : sam. 30 août 2014, 19:54
Contact :

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par papajoke » dim. 29 avr. 2018, 17:18

lol je l'avais oublié le mirrorlist.pacnew ; c'est justement l’exception qui confirme ma règle :lol:
la j'ai fait un hook qui le supprime automatiquement et met la liste à jour (aussi automatiquement) :roll:

Code : Tout sélectionner

#/etc/pacman.d/hooks/mirrorlist.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = pacman-mirrorlist

[Action]
Description = lancement de reflector
When = PostTransaction
Depends = reflector
Exec = /etc/pacman.d/hooks.bin/mirrorlist.sh
#Exec = /usr/bin/reflector --verbose --country France -l 5 -p http --sort rate --save /etc/pacman.d/mirrorlist

-------------------------
#/etc/pacman.d/hooks.bin/mirrorlist.sh
#!/bin/sh
[[ "${HTTP_USER_AGENT:0:6}" != 'pacman' ]] && exit 2
reflector --verbose --country France -l 5 -p http --sort rate --save /etc/pacman.d/mirrorlist
if (($?==0)); then
        echo "[$(date +'%F %H:%I')] [HOOK] pacman-mirrorlist" >>/var/log/pacman.log
        if [ -f "/etc/pacman.d/mirrorlist.pacnew" ]; then
                rm -v /etc/pacman.d/mirrorlist.pacnew
        else
                echo "no .pacnew to remove ?"
        fi
fi
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau

barrydumoulin
Hankyu
Messages : 18
Inscription : sam. 28 avr. 2018, 12:25

Re: [gestion pacnew] fusionner des fichier .pacnew facilement

Message par barrydumoulin » ven. 11 mai 2018, 11:36

Merci à tous, le sujet est maintenant beaucoup plus clair.

Répondre