Garder une liste de paquets et suprimer les autres

Bonjour
Je voudrais savoir si vous connaissez une methode pour supprimer les paquets que j’ai installé, pour me retrouver avec une debian comme après l’installation.
J’ai effectué une sauvegarde des paquets sur une liste, juste après l’installation avec:

Ce qui me donne une liste des paquets installé.
J’ai installé plusieur logiciel depuis et je voudrais un moyen de les effacer et ne garder que ceux figurant sur la liste plus haut.
Avez vous un moyen pour résoudre mon problème? Merci.

Mis à part le fait que les noms de “paquets” que j’ai utilisés en exemple sont bidons, tu as tout ce qu’il faut ci-dessous.

D’abord, transformer tes listes de paquets dkpg --get-selections en listes utilisables ne contenant que des noms de paquets, un par ligne (perso je n’utilise jamais dpkg --get-selections mais aptitude search ~i -F ‘%p’ ça évite cette étape) :

[code]# cat liste-dpkg
acpi-support-base install
acpid install
adduser install

cat liste-dpkg | sed ‘s@^([a-zA-Z0-9+.-]+).*$@\1@g’ > liste-utilisable

cat liste-utilisable

acpi-support-base
acpid
adduser[/code]

Ensuite pour déterminer quels paquets doivent être réinstallés (car ils ont été supprimés depuis l’install initiale) et quels paquets doivent être supprimés…
Note bien que les fichiers origine et actuel doivent être triés dans le même ordre pour que comm fonctionne (d’où les deux commandes sort pour s’en assurer).

[code]# ls
actuel
origine

sort origine -o origine

cat origine

a
b
c

sort actuel -o actuel

cat actuel

a
b
d
e
f

comm -2 -3 origine actuel > reinstaller

cat reinstaller

c

comm -1 -3 origine actuel > supprimer

cat supprimer

d
e
f[/code]

Enfin pour appliquer les listes de paquets calculées ci-dessus :

[code]# aptitude install $(cat reinstaller)

aptitude purge $(cat supprimer)[/code]

À noter que cette procédure peut également être utilisée pour s’assurer que deux machines ont exactement les mêmes paquets installés (origine est alors la machine “modèle”, et actuel est la machine “à synchroniser”). C’est d’ailleurs ce que je fais quand je m’installe une nouvelle machine personnelle, ça me fait gagner beaucoup de temps. :wink:

Y’aurait probablement moyen d’arriver au même résultat avec l’option –set-selections de dpkg mais vu que je peux pas blairer dpkg je l’utilise le moins possible. :mrgreen:

Wouw merci Syam :023 , ta méthode fonctionne mais elle est très complex.
Je me suis penché un peu sur le sujet de DPKG et j’ai trouvé cette méthode:
On sauvegarde la liste des paquet que l’on voudra restaurer plus tard

dpkg --get-selections > avant.txt

On installes plein de paquets inutile, ou pas, pour les essayer
Puis pour revenir a l’état d’origine on fais:

dpkg --clear-selections && dpkg --set-selections < avant.txt && apt-get dselect-upgrade

Et voilou !!!

@ syam Il faudrait p’t’être ajouter ta méthode dans le fil du forum Trucs et Astuces :
http://www.debian-fr.org/remettre-une-machine-a-zero-t19511.html

Effectivement c’est plus simple comme ça. :clap:

[quote=“wetaskiwin”]Il faudrait p’t’être ajouter ta méthode dans le fil du forum Trucs et Astuces :
debian-fr.org/remettre-une-m … 19511.html[/quote]
Huhu je savais pas que ce fil existait, tiens… Cela dit, la méthode de fran.b (qui est la même que celle de Velociraptux) marche tout aussi bien et est bien plus simple à mettre en œuvre donc je vois pas trop l’intérêt de rajouter la mienne.

Et les amateurs de solutions compliquées ? C’est pas juste, personne ne pense jamais à eux ! :wink:

Rooh pour une fois que j’essaye de pas embêter les autres avec mes névroses anti-dpkg / anti-aptget… :mrgreen:

Non plus sérieusement, y’a un point qui peut poser problème dans ma manière de faire (même si c’est rare en pratique, perso je n’ai jamais rencontré le cas mais ça reste possible en théorie).
Ma méthode nécessite deux étapes successives (install puis remove ou bien remove puis install). Si les dépendances de paquets se mettent mal il se peut tout à fait qu’il n’y ait pas de solution faisable en deux étapes. Imagine deux paquets qui fournissent la même fonctionnalité et qui sont en conflit l’un avec l’autre (seul l’un des deux peut être installé à un moment donné), mais malheureusement un de ces deux paquets doit absolument rester installé à cause des dépendances. Impossible donc de faire d’abord un remove de l’ancien, mais impossible également de faire d’abord un install du nouveau !
L’avantage de la méthode dpkg --set-selections c’est que toutes les modifications sont faites d’un seul coup donc cette question ne se pose pas.

Je sais pas si c’est très clair comme explication mais le fait est que dpkg --set-selections reste fiable dans les cas tordus, ce qui n’est pas le cas de ma méthode. :wink:

J’étais dans l’optique d’un regroupement des deux sujets pour aider ma pauv’ mémoire qui a parfois du mal à s’y retrouver, surtout quand les fils commencent à être anciens. Mais, pour les options techniques, tu es nettement plus au point que moi. :slightly_smiling: