Versionner linux subversion

Gadaana -  
 Gadaana -
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
Configuration: Linux Debi

4 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Ç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
  2. gadaana Messages postés 8 Statut Membre
     
    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
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
  4. Gadaana
     
    Bonsoir,
    Quelqu'un d'autre aurait-il une idée?
    0