Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.

Gestion des pacnews, pacsave, pacorig

#21Messageil y a 8 ans

pareil, on a affaire à des tâches d'administration, donc on reste sur des droits Root.
en plus, si on met ces pacnew accessibles en écriture par un user lambda, je vois pointer une faille de sécurité très grave (injection de fichiers de conf modifiés, pour Ssh par exemple).

Gestion des pacnews, pacsave, pacorig

#22Messageil y a 8 ans

voila c'est fait les archives ... mais dur dur de faire des tests :rire

$sudo pacman-diffs -c -d9999
php.ini
-- les différences de /etc/php/php.ini.pacnew   (2014-12-17)
archive in /var/cache/pacman/pacnew/etc/php/1418849184-php.ini.pacnew
2 fichiers "php.ini" non archivés
profile
-- les différences de /etc/profile.pacnew   (2001-06-04)
archive in /var/cache/pacman/pacnew/etc/991645860-profile.pacnew
- ligne ajoutée dans mon fichier pacnew
+ ligne test ajoutée dans mon fichier pacnew
archive puis compare que si fichier existe dans /etc/ et que 2 fichiers existent dans archive

on obtient : "2 fichiers "xxx" non archivés", le fichier est bien archivé mais cela signifie qu'il n'y a pas 2 fichiers archivés (et oui 2 c'est un minimum par une comparaison)

- pas de lancement de l'éditeur graphique en mode archive (cela me semble normal)
- manque encore un rm du pacnew dans /etc/ si les 2 archives sont égales...

pour les test j'ai fait un

sudo touch -t 200106041111 /etc/profile.pacnew

histoire d'avoir 2..3..x fichiers car l'archive est faite en fonction de la date du fichier et (devrait...) ne garder que les 2 dernières.
Dernière modification par papajokeil y a 8 ans, modifié au total 1 fois.

Gestion des pacnews, pacsave, pacorig

#23Messageil y a 8 ans

je teste mais pour le moment je n'ai qu'un seul pacnew (mirrorlist) donc ce n'est pas très utile comme test; on verra dans la durée...
j'ai archivé ce pacnew, et on verra le traitement à la prochaine mise à jour de mirrorlist; est-il capable de voir les serveurs ajoutés ou enlevés dans ce fichier et s'en occuper tout seul ?

Gestion des pacnews, pacsave, pacorig

#24Messageil y a 8 ans

Je viens de tester la dernière version sur la machine de ma femme sur laquelle je ne traite jamais les .pac :twisted:

profile
-- les différences de /etc/profile.pacnew       (2015-09-30)
- if test "$PS1" && test "$BASH" && test -r /etc/bash.bashrc; then
+ if test "$PS1" && test "$BASH" && test -z ${POSIXLY_CORRECT+x} && test -r /etc/bash.bashrc; then
- BROWSER=/usr/bin/xdg-open
-- Vous pouvez supprimer ce fichier : sudo rm /etc/profile.pacnew
pacman-diffs identifie clairement les différences entre les deux fichiers, par contre le programme m'invite à supprimer le .pac alors que ce pac. présente une nouveauté/amélioration test -z ${POSIXLY_CORRECT+x} C'est ici que l'on se rend compte de la complexité d'une automatisation du traitement des .pac car une intervention manuelle est nécessaire dans ce cas précis, me trompe-je ? Sinon, pacman-diffs fait son boulot de résumer et mettre en relief les différences entre les deux fichiers de façon impeccable :bien

Autre observation : gshadow n'est pas accessible en lecture comme en écriture pour l'user, il faudra donc utiliser la commande "sudo" ou se connecter en root

gshadow
-- les différences de /etc/gshadow.pacnew       (2015-02-16)
diff: /etc/gshadow: Permission non accordée
diff: /etc/gshadow.pacnew: Permission non accordée
-- Vous pouvez supprimer ce fichier : sudo rm /etc/gshadow.pacnew

Gestion des pacnews, pacsave, pacorig

#25Messageil y a 8 ans

@Erwan
le message de suppression est maintenant bien uniquement lorsque diff ne renvoie rien

@Loubrix
je n'avais envisagé aucun traitement...
mais pour mirrorlist sous arch (voir autres?) il est possible d'envisager dans un 2eme temps un plugin qui lance un bash (reflector par exemple) automatiquement si différence détectée

fichier /etc/pacman-diffs.plugins :

# pacman-diffs plugins

[php.ini]
txt=php config, dont use if minor version
fr=configuration de php, ne pas tenir compte si maj mineure
url=http://php.net

[yaourtrc]
fr=configuration pour yaourt, utiliser plutot ~/yaourtrc
url=https://github.com/archlinuxfr/yaourt
exe=pacman -Q | grep "yaourt"

[mirrorlist]
fr= ne pas tenir compte du fichier et exécuter reflector à la place
exe= reflector --verbose --country France -l 5 -p http --sort rate --save /etc/pacman.d/mirrorlist && rm /etc/pacman.d/mirrorlist.pacnew

[locale.gen]
fr= ne pas tenir compte, suppression automatique
txt=auto remove
exe= rm  /etc/locale.gen.pacnew

[ntp]
url= https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon#Configuration
:idee: proposer le wiki arch est déjà pas mal

--------------------------------------------------------------------------------------------

note : (intégré dans le script -i -j), pour retrouver l'historique de nos pacnew

grep "pacnew$" /var/log/pacman.log | sed -e "s/\[ALPM\] warning: //"

et avoir la liste des fichiers

$ grep "pacnew$" /var/log/pacman.log| awk '{print $8}' | sort | uniq
/etc/conf.d/fluidsynth.pacnew
/etc/group.pacnew
/etc/gshadow.pacnew
/etc/locale.gen.pacnew
/etc/makepkg.conf.pacnew
/etc/ntp.conf.pacnew
/etc/pacman.conf.pacnew
/etc/passwd.pacnew
/etc/php/php.ini.pacnew
/etc/profile.pacnew
/etc/shadow.pacnew
/etc/systemd/coredump.conf.pacnew
/etc/systemd/journald.conf.pacnew
/etc/systemd/logind.conf.pacnew
/usr/share/config/kdm/kdmrc.pacnew
Dernière modification par papajokeil y a 8 ans, modifié au total 2 fois.

Gestion des pacnews, pacsave, pacorig

#26Messageil y a 8 ans

disons qu'on pourrait essayer de traiter de façon automatique les pacnew qui reviennent le plus souvent (comme mirrorlist) ce serait déjà une bonne avancée; pour le reste, même sous Ubuntu, il arrive parfois que des questions soient posées, on ne peut pas tout traiter en automatique...
le truc à intégrer, c'est que certains fichiers de conf sont forcément personnalisés, alors que d'autres sont personnalisés optionnellement...

Gestion des pacnews, pacsave, pacorig

#27Messageil y a 8 ans

voila c'est fait les plugins , le fichier conf est dans /etc/pacman.d/pacman-diffs.conf
pour afficher le texte, il cherche en priorité la locale "fr="(ou "es=") sinon c'est "txt="

si un un script "exe=" existe, il va avoir besoin du mode administrateur
ps: reflector de mirrorlist n'est pas actif par défaut

Loubrix a écrit :le truc à intégrer, c'est que certains fichiers de conf sont forcément personnalisés, alors que d'autres sont personnalisés optionnellement...

facile d'ajouter un message avec les plugins et sinon il existe les archives "-c"(a tester dans 2 mois :rire ) qui devrait solutionner le problème
Dernière modification par papajokeil y a 8 ans, modifié au total 1 fois.

Gestion des pacnews, pacsave, pacorig

#28Messageil y a 8 ans

Loin de moi l'idée de discrétiser ton travail Papajoke, mais en fait j'ai du mal à cerner les différences de ton outil par rapport à un yaourt -C...
Pourrais tu m'éclairer ?

Gestion des pacnews, pacsave, pacorig

#29Messageil y a 8 ans

:bjr: Pour ma part je préfère lancer ce programme en dehors des mises à jour. j'ai d'ailleurs crée un alias qui va bien

alias pacnew='sudo pacman-diffs'
Au top !

Gestion des pacnews, pacsave, pacorig

#30Messageil y a 8 ans

N3mesis98 a écrit :en fait j'ai du mal à cerner les différences de ton outil par rapport à un yaourt -C...

Déjà merci, si en 200 lignes de code je fait presque aussi bien :gsourire: pacdiffviewer existe depuis longtemps et beaucoup de monde a travaillé dessus. je ne prétends pas faire mieux mais aspire a faire quelque chose de simple pour l'utilisateur "non avancé".

l'idée no 1) était de pouvoir utiliser un éditeur graphique car vim pour le simple mortel :rigole:
ps: il est possible avec un DIFFEDITCMD="kdesu diffuse" dans ~/.yaourtrc, ca marche aussi ...

2) avoir d'un rapide coup d’œil toutes les différences me semble un bon point. Cela nous prouve qu'il y a du travail à faire et c'est joli :clindoeil: . Avec pacdiffviewer tu ne vois qu'une liste de noms et proposer "[R]emplacer, [S]upprimer" alors que l'on a même pas un diff me parait fou.

3) Les pacnew peuvent être "archivés"

4) Il est possible de comparer les archives(de pacnew) entre elles, ce qui permet d'exclure du diff les changements utilisateur et donc de ne voir que les changement du développeur.
ps: je pense même qu'il passera automatiquement une comparaison archives (avec suppression auto) avant une comparaison classique pour simplifier la vie de l'utilisateur.

5) Le système de "plugin" va permettre une gestion particulière / pour certains pacnew : traitement,affichage infos... Il reste à bien l'écrire ce fichier, pour l'instant c'est le grand début!

--------------------------
point négatif , pas de menu donc il faut (re)taper une commande (simple) pour éditer :pleure: au dessus de 2 fichiers cela devient très pénible...

--------------------------------------------
@ Erwan
c'est vrai que le nom est pas terrible et long a taper :rendre: mais "pacnew" serait bon uniquement si il était la réponse ultime.

Gestion des pacnews, pacsave, pacorig

#31Messageil y a 8 ans

Merci pour ta description !
Je garde ça au chaud, et je le testerais en détail à l'apparition du prochain pacnew.

Éventuellement, tu peux aussi rajouter meld, un autre outil graphique de résolution des merges, aux dépendances optionnelles du paquet.
Tant qu'on parle de ça, quelqu'un connaît il un outil de ce type en CLI autre que vim ? J'ai la vague impression que c'est un peu le seul de sa catégorie sur la banquise...
Répondre