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

#1Messageil y a 9 ans

ewolnux a écrit :Bonjour

Je suis en train de remanier ce tuto d'installation net+mate. Il y a des choses qui ne sont plus d'actualité, j'y bosse.
Dès que ce sera prêt je le dirai ici.


Ok ! Super !
La je viens d'installer en Vbox la version 32 bits après avoir supprimé ce fameux applet de changement de fréquence.
Tout s'est ensuite bien passé.
Sauf après la mise à jour --> j'ai eu 6 fichiers ".pacnew"
- gshadow.pacnew
- group.pacnew
- locale.gen.pacnew
- passwd.pacnew
- shadow.pacnew
- sudoers.pacnew
Que dois faire de ces paquets ?
Les conserver ? Les virer ?
Je n'ai pas bien compris à quoi ils servent ?
:saispas:
:merci:

Gestion des pacnews, pacsave, pacorig

#2Messageil y a 9 ans

- gshadow.pacnew : tu jettes
- group.pacnew : tu jettes
- locale.gen.pacnew : tu jettes
- passwd.pacnew : tu regardes les différence et tu gères
- shadow.pacnew : tu jettes
- sudoers.pacnew : tu regardes les différences et tu gères

Pour savoir comment les gérer, fais une petite recherche : wiki arch pour le concept, fofo manjaro pour la gestion.

Gestion des pacnews, pacsave, pacorig

#3Messageil y a 9 ans

:bjr: Otacon
Pour savoir comment les gérer, fais une petite recherche : wiki arch pour le concept, fofo manjaro pour la gestion.


Ok Merci à toi, je vais voir de plus près !
:merci:

Gestion des pacnews, pacsave, pacorig

#4Messageil y a 9 ans

Voici un extrait du wiki au sujet des fichiers *pacnew :
À la fin de la mise à jour, suppression ou installation d'un paquet, pacman peut vous informer de la présence d'un fichier *.pac* , exemple :
Avertissement : /etc/rc.conf installé en tant que /etc/rc.conf.pacnew
Ces fichiers (principalement des fichiers de configurations) correspondent à des versions de fichiers marqués comme étant à sauvegarder (ligne backup dans le PKGBUILD) et demandent une intervention manuelle de la part de l'utilisateur afin de décider de leur sort.
Différent types
*.pacnew

Ce fichier est créé lors d'une mise à jour d'un paquet si le fichier marqué à sauvegarder:
- existe
- est différent de la version précédemment installée
- est différent de la nouvelle version

OKje veux bien, mais ce que je ne sais pas: ........
Ces fichiers (principalement des fichiers de configurations) correspondent à des versions de fichiers marqués comme étant à sauvegarder (ligne backup dans le PKGBUILD) et demandent une intervention manuelle de la part de l'utilisateur afin de décider de leur sort.

... lequel est le fichier à sauvegarder...: s'agit-il du fichier "pacnew" ? A mon avis ...oui !
Donc si j'ai bien compris :
- baptiser ces fichiers (les pacnews) en pacnews.bak pour les conserver le temps de vérifier que tout fonctionne correct et les virer ensuite ...!
Exact ???
Oui si l'on compare les 2 : le pacnew et le "pas pacnew" leur contenu est parfois différent ...mais pour un "NUL" comment savoir ce qu'il faut faire de ces
contenus ? Pas évident tout ça.!
Et si l'on ne fait rien et que l'on laisse tout ça en l'état,....qu'est ce que ça donne ou qu'est ce que ça peut donner par la suite ?

Merci de votre aide...... :desole: ...... :saispas:

Gestion des pacnews, pacsave, pacorig

#5Messageil y a 9 ans

Salut Jean

J'ai créé un nouveau sujet, rien à faire avec le précédent (mate).
Ces pacnews, etc., on en a parlé à maintes reprises sur ce forum, il te faut faire des recherches.
Il y a aussi le wiki arch à compulser ici => https://wiki.archlinux.fr/Gestion_des_f ... igurations

Gestion des pacnews, pacsave, pacorig

#6Messageil y a 9 ans

Ok. Pas de souci pour le nouveau sujet.
Oui pour la recherche ... sauf que je ne pige pas tout, et c'est l'objet de quelques questions dans un message juste au dessus.!
Même si je vais essayer de trouver réponse tout seul....mais ce qui est évident pour vous, ne l'est pas pour tout le monde. :confus:
:desole:

Gestion des pacnews, pacsave, pacorig

#7Messageil y a 9 ans

Pour les pacnews (par exemple blabla.pacnew), tu compares le fichier blabla avec blabla.pacnew et soit tu adaptes le pacnew, soit tu adaptes l'autre ;
au final il ne te faut plus qu'un fichier.

Dans l'idéal pour prendre le max de précautions, tu crées un troisième fichier avec les éléments que tu juges devoir prendre dans blabla et blabla.pacnew et tu passes blabla et blabla.pacnew en .bak le temps d'être sûr que tu n'as pas commis de connerie.

En cas de doute, tu postes dans le forum ton fichier blabla et le blabla.pacnew en demandant des conseils.

Gestion des pacnews, pacsave, pacorig

#8Messageil y a 9 ans

Encore pour ton info :clindoeil:

Les commandes :

sudo pwck

et

sudo grpck

permettent de vérifier respectivement la cohérence des informations sur les mots de passe des utilisateurs (/etc/passwd et /etc/shadow) et les informations des groupes (/etc/group et /etc/gshadow).

Si une incohérence est détectée, elle sera signalée et permettra d'être corrigée.

C'est à faire si tu modifies ces fichiers, ces deux commandes te permettront de savoir si tu as géré comme il faut.

Gestion des pacnews, pacsave, pacorig

#9Messageil y a 9 ans

un petit exemple-explication sur les pacnews:

soit par exemple nous avons installé un logiciel fictif "gedit", il permet dispose de plusieurs fonctions qui sont sauvegardées dans un fichier de configuration utilisateur:

la version a l'installation: /usr/gedit/configuration.txt

autosauvegarde=oui
langue=fr


Toi dans le logiciel tu configures l'auto-sauvegarde à zéro, cela va donner:
/usr/gedit/configuration.txt

autosauvegarde=non
langue=fr


A la prochaine mise à jour du logiciel, une nouvelle fonction est disponible, la couleur du texte, comme ton fichier est différent de l'original, la mise à jour ne sais pas si il est possible de remplacer l'ancien fichier (tu perdrais toute ta config), donc il fait un fichier .pacnew qui correspond au fichier d'usine pour le logiciel :
/usr/gedit/configuration.txt.pacnew

autosauvegarde=oui
couleur=bleu
langue=fr

A noter que le logiciel ne connait pas le .pacnew et va toujours utiliser l'ancien.

dans l'idéal ici, tu devrais recopier-modifier "autosauvegarde" et ajouter "couleur"

-------------------------
Si tu as tout compris (mon exemple), tu peux comprendre que ce qu'il faut copier,ajouter,modifier dépend de chaque personne (sa configuration propre) mais; le plus dur, dépend de chaque logiciel (impossible pour nous simple mortel de comprendre facilement les modifications propre a un logiciel)

si tu n'ajoutes pas les nouvelles données du .pacnew, le logiciel risque de planter ...
si tu ne récupères pas tes données de l'ancien vers le nouveau tu risques de perdre ta configuration / voir de planter

Gestion des pacnews, pacsave, pacorig

#10Messageil y a 9 ans

Je prends le train en marche. Dans vos explications il est toujours question de deux fichiers "l'original" et le "pacnews" mais que le passe-t-il quand il y en a trois.
1er fichier : group

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin
adm:x:4:root,daemon
tty:x:5:
disk:x:6:root,andson,enfants
lp:x:7:daemon,andson,enfants
mem:x:8:
kmem:x:9:
wheel:x:10:root
ftp:x:11:
mail:x:12:
uucp:x:14:
log:x:19:root
utmp:x:20:
locate:x:21:
rfkill:x:24:
smmsp:x:25:
http:x:33:
games:x:50:
lock:x:54:
uuidd:x:68:
dbus:x:81:
network:x:90:andson,enfants
video:x:91:andson,enfants
audio:x:92:andson,enfants
optical:x:93:andson,enfants
floppy:x:94:
storage:x:95:andson,enfants
scanner:x:96:andson,enfants
power:x:98:andson,enfants
nobody:x:99:
users:x:100:
systemd-journal:x:190:
rpc:x:32:
dnsmasq:x:999:
polkitd:x:102:
nbd:x:44:
avahi:x:84:
ntp:x:87:
input:x:998:
systemd-journal-gateway:x:997:
systemd-journal-remote:x:996:
systemd-journal-upload:x:995:
systemd-bus-proxy:x:994:
systemd-network:x:993:
systemd-resolve:x:992:
systemd-timesync:x:991:
mysql:x:89:
kdm:x:135:
colord:x:124:
rtkit:x:133:

2ème fichier : group-
Identique sauf la dernière ligne:

systemd-resolve:x:992:
systemd-timesync:x:991:
mysql:x:89:
kdm:x:135:
colord:x:124:
rtkit:x:133:
git:x:990:

et enfin la version "pacnew"

root:::root
bin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin
adm:::root,daemon
tty:::
disk:::root
lp:::daemon
mem:::
kmem:::
wheel:::root
ftp:::
mail:::
uucp:::
log:::root
utmp:x::
locate:::
rfkill:x::
smmsp:::
http:::
games:::
lock:::
uuidd:x::
dbus:x::
network:x::
video:x::
audio:::
optical:::
floppy:x::
storage:x::
scanner:x::
input:x::
power:x::
nobody:::
users:::
systemd-journal:::
systemd-journal-gateway:::
systemd-timesync:::
systemd-network:::
systemd-bus-proxy:::
systemd-resolve:::

qui à mon avis est à jeter.
Mais pourquoi group et group- (ceci est également valable pour d'autres fichiers)

Gestion des pacnews, pacsave, pacorig

#11Messageil y a 9 ans

Le "-" derrière un nom de fichier montre que c'est un fichier sauvegardé par le système après une modif.
typiquement, tu modifies ton .conkyrc, et tu te retrouves avec un .conkyrc~ (chez moi c'est des tildes).
Je ne sais pas si c'est l'éditeur de texte qui le fait ou autre chose dans le système.

pour les scanner, en root positionné à la racine :

find . -name "*-"


Pour les supprimer, je mets pas la commande.. (en cas d'erreur, genre j'oublie le tiret, ça fait très mal)

find . -name "*-" -exec rm "{}" ";"

Gestion des pacnews, pacsave, pacorig

#12Messageil y a 9 ans

Merci pour la précision, c'est ce que je ne comprennais pas car jusqu'à présent j'avais comme toi des tildes derrière les noms des fichiers modifiés et la ce tiret, un peu dérouté sur le coup, peut-être une particularité de la net-edition.

Gestion des pacnews, pacsave, pacorig

#13Messageil y a 8 ans

un petit script console maison

il permet de voir en console toutes les différences entre tous(- de 180 jours) nos pacnew, pacsave, pacorig en une seule fois.
Image
en rouge, ce qui n'existe plus dans le pacnew
en vert, ce qui est nouveau dans le pacnew

utilisation ./pacman-diffs(.sh)
paramètre optionnel : pacnew ou pacsave ou pacorig
deuxième paramètre optionnel : ancienneté des fichiers

et il peut se rajouter dans l'alias "maj" comme cela plus d’excuses :clindoeil:

maj='sudo pacman-mirrors -g -c France,United_Kingdom && sudo pacman -Syu && pacman-diffs pacnew 2'



le code source du fichier pacman-diffs(.sh)

#!/usr/bin/env bash

AGE=180 # ne rechercher que ceux qui ont moins de 180 jours
if [ -n "$2" ]; then
    AGE="$2"
fi
EXT='pacnew'
if [ -n "$1" ]; then
    EXT="$1"
fi

c_red='\033[0m\033[31m'
c_green='\033[0m\033[32m'
c_end='\033[0m'
bold="\033[1m"

find '/etc' -name "*.$EXT" -mtime -$AGE -type f 2> /dev/null | while read file ; do

   fname=$(basename "$file")
   fname="${fname%.$EXT}"
   ofile="$(dirname ${file})/${fname}"
   dfile=$(stat -c "%y" ${file} | awk '{print $1}')
   echo -e "\n$bold${fname}$c_end\n-- les différences de $file\t(${dfile})"
   
   if [ -f "$ofile" ]; then
    # < : enlever
    # > : ajouter
    IFS=$'\n'
    diff ${ofile} ${file}| grep -E "^>|^<" | while read line ; do
        if [ "${line::1}" = '<' ]; then c="$c_red-"; else c="$c_green+"; fi
        echo -e "$c ${line:2}$c_end"
    done
   
    else
        echo -e "\t$bold Erreur:$c_end fichier n'existe pas ? $ofile"
   fi

done

Gestion des pacnews, pacsave, pacorig

#14Messageil y a 8 ans

:bjr: papajoke, adopté ! Aucun retour chez moi mais il est vrai que les pac. ne font pas long-feu... dés qu'il arrivent : :Rouleau:

[erwan@manjaro ~]$ ./pacman-diffs
[erwan@manjaro ~]$

Reste plus qu'à attendre les prochains avec impatience, pour une fois :D Merci pour ce script :bien

Gestion des pacnews, pacsave, pacorig

#15Messageil y a 8 ans

Nouvelle version cette fois sur aur
installation, en console uniquement par :

yaourt -S pacman-diffs


Usage :
pacman-diffs retourne tous les .pacnew sur 1 an et les compare
pacman-diffs -d22 : Date. retourne les fichiers et différences qui ont moins de XX jours
pacman-diffs -x pacsave : extension. retourne les fichiers .pacsave
pacman-diffs -lListe seulement les fichiers (pacnew), pas de comparaison
-h : ? :clindoeil:

Grosse nouveauté :
et après avoir lister(/comparer) en console, il est possible de comparer/éditer graphiquement les 2 fichiers
pacman-diffs -e profileEdite avec les logiciels "diffuse" ou "kompare" les fichiers /etc/profile.pacnew et l'original
le parametre -e attend uniquement le nom retourné en gras (par exemple -e php.ini pour /etc/php/php.ini.pacnew)

mon alias devient donc :

maj='sudo pacman-mirrors -g -c France,United_Kingdom && sudo pacman -Syu && pacman-diffs -d2'
Dernière modification par papajokeil y a 8 ans, modifié au total 1 fois.

Gestion des pacnews, pacsave, pacorig

#16Messageil y a 8 ans

Salut Papajoke :bjr:
Du coup avec ce script, ce sujet devient une contribution à Manjaro.
J'y ai donc déplacé le sujet.

Gestion des pacnews, pacsave, pacorig

#17Messageil y a 8 ans

@ Papajoke: ne serait-il pas possible de conserver les pacnew dans un répertoire pour un usage ultérieur ? je m'explique: le pacnew est la conséquence d'une modification dans le fichier, et comparer le fichier d'origine (avant modification par l'utilisateur) avec le nouveau (lors des mises à jour) permettrait de voir ce qui a réellement changé dans le fichier à la mise à jour, et donc décider si on peut juste conserver le fichier modifié par l'utilisateur (dans le cas où aucune nouvelle ligne n'est ajoutée dans le fichier upstream), ou s'il faut une intervention manuelle (peut-être réalisable par le script s'il faut juste ajouter ou enlever des lignes qui n'ont pas été modifiés).
je sais pas si je suis bien clair...

Gestion des pacnews, pacsave, pacorig

#18Messageil y a 8 ans

Une belle avançée, acceccible à tous puisque dans Aur désormais. :clap papajoke

Gestion des pacnews, pacsave, pacorig

#19Messageil y a 8 ans

@Loubrix
bien compris et il est clair qu'il est beaucoup + intéressant de comparer les .pacnew entre eux :maître:
cela me semble relativement "facile", je propose :

pacman-diffs -a
Archive tous les .pacnew trouvés dans /var/cache/pacman/pacnew/ sous la forme : repertoire/file.dateCreationDuFichierDansEtc.pacnew
et fait du ménage (en fonction de "dateCreationDuFichierDans Etc") si + de 2 archives existent
pacman-diffs -c
1) faire une archive+ménage (le -a) et
2) lister les fichiers pacnew dans /etc/
3) va comparer à partir de la liste en no2 ,cette fois ci uniquement les pacnew dans /var/cache/ si il trouve 2 versions du même fichier dans le cache
3-bis) et proposer la suppression du /etc/pacnew si le diff des 2 archives ne retourne rien

corrige moi si je me trompe :clindoeil:
ps: /var/cache/pacman/pacnew/ est "normalement" en root uniquement en écriture :pleure:faut-il mettre des droits utilisateurs ou obliger le sudo à la commande ? :saispas:
Dernière modification par papajokeil y a 8 ans, modifié au total 2 fois.

Gestion des pacnews, pacsave, pacorig

#20Messageil y a 8 ans

Obliger le sudo me semble plus adapté non ?
Répondre