Versionner linux subversion

Fermé
Gadaana - 29 janv. 2010 à 19:00
 Gadaana - 3 févr. 2010 à 19:32
Bonjour,

J'aimerais suivre l'évolution de mon système Linux.
C'est-à-dire que j'installe ma machine Etat0, ensuite j'installe un logiciel Etat1, puis un deuxième logiciel Etat2, ainsi de suite jusqu'à l'EtatN.
Serait-il possible d'avoir un outil ou une façon de faire qui me permettrait de connaitre tous les fichiers modifiés entre maintenant et un Etat précédent?

En d'autre terme, je cherche l'équivalent de SVN pour les développeurs, mais sur un système d'exploitation.

Merci pour vos réponses,
Cordialement
A voir également:

4 réponses

mamiemando Messages postés 33352 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 novembre 2024 7 804
29 janv. 2010 à 20:32
Ça dépend pas mal de la distribution tu peux voir tous les paquets installés / mis à jour / supprimés dans les logs (/var/log/dpkg.log etc..). Exemple :

(mando@aldur) (~) $ grep " installed " /var/log/dpkg.log | tail
2010-01-28 00:31:18 status installed xserver-xorg-video-dummy 1:0.3.2-1
2010-01-28 00:31:18 status installed xserver-xorg-input-mouse 1:1.5.0-1
2010-01-28 00:31:18 status installed xserver-xorg-input-joystick 1:1.5.0-1
2010-01-28 00:31:18 status installed xserver-xorg-input-evdev 1:2.3.2-3
2010-01-28 00:31:19 status installed xserver-xorg-input-wacom 0.10.3+20100109-1
2010-01-28 00:31:19 status installed xserver-xorg 1:7.5+2
2010-01-28 00:31:20 status installed menu 2.1.42
2010-01-28 00:31:21 status installed python-support 1.0.6
2010-01-29 00:49:59 status installed nvidia-kernel-2.6.32-trunk-686 185.18.36-2+2.6.32-5
2010-01-29 00:50:58 status installed nvidia-kernel-2.6.32-trunk-686 185.18.36-2+2.6.32-5


On peut imaginer que tu récupères ensuite les noms de paquets avec un cut (là j'ai mis un tail pour n'afficher que la fin) :

(mando@aldur) (~) $ grep "installed" /var/log/dpkg.log | cut -d' ' -f5
xserver-xorg-input-kbd
xserver-xorg-video-nv
xserver-xorg-video-dummy
xserver-xorg-input-mouse
xserver-xorg-input-joystick
xserver-xorg-input-evdev
xserver-xorg-input-wacom
xserver-xorg
menu
python-support


Tu peux regarder quels fichiers sont dépaquetés par un paquet en affichant son contenu. Tous les paquets sont téléchargés dans /var/cache/apt/archives. Pour afficher le contenu d'un paquet il suffit d'utiliser la commande dpkg --contents.

Exemple :
(mando@aldur) (~) $ dpkg --contents /var/cache/apt/archives/apt-file_2.3.1_all.deb
drwxr-xr-x root/root         0 2009-11-29 14:09 ./
drwxr-xr-x root/root         0 2009-11-29 14:09 ./var/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./var/cache/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./var/cache/apt/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./var/cache/apt/apt-file/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./etc/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./etc/apt/
-rw-r--r-- root/root      2098 2009-11-29 14:09 ./etc/apt/apt-file.conf
drwxr-xr-x root/root         0 2009-11-29 14:09 ./etc/bash_completion.d/
-rw-r--r-- root/root       748 2009-11-29 14:09 ./etc/bash_completion.d/apt-file
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/share/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/share/doc/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/share/doc/apt-file/
-rw-r--r-- root/root      7145 2009-11-29 14:07 ./usr/share/doc/apt-file/changelog.gz
-rw-r--r-- root/root       401 2008-11-15 20:46 ./usr/share/doc/apt-file/README
-rw-r--r-- root/root       464 2009-07-30 17:22 ./usr/share/doc/apt-file/copyright
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/share/apt-file/
-rwxr-xr-x root/root       300 2009-11-29 14:09 ./usr/share/apt-file/is-cache-empty
-rwxr-xr-x root/root      6132 2009-11-29 14:09 ./usr/share/apt-file/rapt-file
-rw-r--r-- root/root       314 2009-11-29 14:09 ./usr/share/apt-file/apt-file-update.update-notifier
-rwxr-xr-x root/root        98 2009-11-29 14:09 ./usr/share/apt-file/do-apt-file-update
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/share/man/
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/share/man/man1/
-rw-r--r-- root/root       787 2009-11-29 14:09 ./usr/share/man/man1/diffindex-download.1.gz
-rw-r--r-- root/root      2221 2009-11-29 14:09 ./usr/share/man/man1/apt-file.1.gz
-rw-r--r-- root/root       647 2009-11-29 14:09 ./usr/share/man/man1/diffindex-rred.1.gz
drwxr-xr-x root/root         0 2009-11-29 14:09 ./usr/bin/
-rwxr-xr-x root/root     10001 2009-11-29 14:09 ./usr/bin/diffindex-download
-rwxr-xr-x root/root     19743 2009-11-29 14:09 ./usr/bin/apt-file
-rwxr-xr-x root/root       155 2009-11-29 14:09 ./usr/bin/rapt-file
-rwxr-xr-x root/root      8762 2009-11-29 14:09 ./usr/bin/diffindex-rred


Il suffit donc de réinjecter le résultat de la première commande dans la seconde :

for x in `grep "installed" /var/log/dpkg.log | cut -d' ' -f5`; do dpkg --contents /var/cache/apt/archives/$x*.deb 2>/dev/null; done


Bon la limite de cette approche c'est qu'on ne tient pas compte du numéro de version, et les numéros de versions qu'on récupère dans les logs de dpkg ne sont pas directement réutilisables (le nom du paquet ne porte pas exactement le nom de sa version référencée dans dpkg).

Du coup tu vas faire un dpkg --contents sur des paquets de mises à jour passées (donc un aptitude clean serait souhaitable quand tu as tout vérifié pour vider ton cache). Autre limite, si le paquet n'est pas dans /var/cache/apt/archives ça ne marchera pas non plus.

Bref c'est une piste mais elle n'est pas parfaite et il y a sans doute mieux...

Bonne chance
0
gadaana Messages postés 8 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 1 février 2010
1 févr. 2010 à 10:16
Bonjour,
Merci pour ta réponse.
J'avais pensé à travailler avec les paquets comme tu me l'indiquais (mais pas de façon aussi clean).
Le seul problème c'est par exemple si je modifie un fichier, par exemple un fichier du cron, je ne peux savoir que je l'ai modifié avec cette méthode. Et je ne peux pas savoir la différence de ce fichier entre deux versions.

Aurais-tu une autre piste?
0
mamiemando Messages postés 33352 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 novembre 2024 7 804
1 févr. 2010 à 10:57
Je pense que tu dois pouvoir le savoir car dpkg-reconfigure peut s'en rendre compte. Au pire tu dépaquetes le paquets dans un fakeroot (c'est une des options de dpkg) et tu compares les fichiers deux à deux avec un diff.

Bonne chance
0
Bonsoir,
Quelqu'un d'autre aurait-il une idée?
0