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
Gestion des pacnews, pacsave, pacorig
#21Messageil y a 8 ansen 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$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
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 ansj'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 ansprofile
-- 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
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 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 ansle 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
--------------------------------------------------------------------------------------------
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 ansle 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 anspour 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 ) 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 ansyaourt -C
...Pourrais tu m'éclairer ?
Gestion des pacnews, pacsave, pacorig
#29Messageil y a 8 ansalias pacnew='sudo pacman-diffs'
Gestion des pacnews, pacsave, pacorig
#30Messageil y a 8 ansN3mesis98 a écrit :en fait j'ai du mal à cerner les différences de ton outil par rapport à unyaourt -C
...
Déjà merci, si en 200 lignes de code je fait presque aussi bien 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
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 . 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 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 mais "pacnew" serait bon uniquement si il était la réponse ultime.
Gestion des pacnews, pacsave, pacorig
#31Messageil y a 8 ansJe 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...