Page 1 sur 1

[gestion pacnew] fusionner des fichier .pacnew facilement

Publié : sam. 28 avr. 2018, 12:35
par barrydumoulin
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.

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

Publié : sam. 28 avr. 2018, 13:44
par waitnsea
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

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

Publié : sam. 28 avr. 2018, 14:27
par barrydumoulin
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...

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

Publié : sam. 28 avr. 2018, 14:28
par papajoke
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.

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

Publié : sam. 28 avr. 2018, 14:44
par barrydumoulin
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 ?

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

Publié : dim. 29 avr. 2018, 08:37
par albireo
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.

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

Publié : dim. 29 avr. 2018, 10:34
par waitnsea
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

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

Publié : dim. 29 avr. 2018, 17:18
par papajoke
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

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

Publié : ven. 11 mai 2018, 11:36
par barrydumoulin
Merci à tous, le sujet est maintenant beaucoup plus clair.