Une autre façon de le faire est de déterminer ce qui a été installé en fonction de vos "tâches" qui déterminent les packages de base à installer selon vos besoins initiaux.
tasksel --list-tasks
Au minimum, vous auriez server
. Cependant, vous pouvez choisir d'en avoir plus. Pour chacune de ces tâches que vous avez installées, vous pouvez obtenir une liste des packages installés avec la commande suivante (décomposée pour plus de clarté pour celles que j'ai choisies dans mon installation) :
(tasksel --task-packages server ; \
tasksel --task-packages openssh-server ; \
tasksel --task-packages lamp-server) | sort | uniq
Une approche générique de ce qui précède serait :
(for a in $( tasksel --list-tasks | grep "^i" | awk '{ print $2 }' ) ; \
do tasksel --task-packages $a; done) | sort | uniq
Utilisez maintenant apt-cache depends --installed -i --recurse | grep -v "^ "
pour obtenir une liste des dépendances utilisées par tous les packages définis dans la tâche. Ceci peut être fait en une ligne comme suit :
apt-cache depends --installed -i --recurse \
$(for a in $( tasksel --list-tasks | \
grep "^i" | \
awk '{ print $2 }' ) ; \
do tasksel --task-packages $a; done) | grep -v "^ " | sort | uniq
La commande suivante répertorie tous les packages installés sur votre système (à l'exclusion des dépendances).
dpkg --get-selections | grep "[[:space:]]install" | awk '{print $1}'
Utilisez maintenant la commande comm
pour trouver ceux qui sont uniquement dans la deuxième liste (c'est-à-dire ignorer ceux qui sont dans les deux fichiers et seulement dans le premier fichier)
comm -13 <(apt-cache depends --installed -i --recurse \
$(for a in $( tasksel --list-tasks | \
grep "^i" | \
awk '{ print $2 }' ) ; \
do tasksel --task-packages $a; done) | grep -v "^ " | sort ) \
<( dpkg --get-selections | grep "[[:space:]]install" | \
awk '{print $1}' | sort)