Versionner linux subversion
Gadaana
-
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
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:
- Versionner linux subversion
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
- R-linux - Télécharger - Sauvegarde
- Linux mint 22.1 - Accueil - Linux
4 réponses
Ç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 :
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) :
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 :
Il suffit donc de réinjecter le résultat de la première commande dans la seconde :
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
(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
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?
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?