Pour ce faire, vous pouvez également déterminer ce qui a été installé en fonction de vos "tâches", qui déterminent les packages de base à installer en fonction de vos besoins initiaux.
tasksel --list-tasks
À tout le moins, vous l'auriez server
. Cependant, vous pouvez choisir d’en avoir plus. Pour chacune des tâches que vous avez installées, vous pouvez obtenir une liste des packages installés à l'aide de la commande suivante, le tout sur une seule ligne (par souci de clarté) pour ceux que j'ai choisis 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
Maintenant, utilisez apt-cache depends --installed -i --recurse <packagename> | 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 liste suivante répertorie tous les packages installés sur votre système (sans compter les dépendances).
dpkg --get-selections | grep "[[:space:]]install" | awk '{print $1}'
Maintenant, utilisez la comm
commande pour trouver ceux qui ne figurent que dans la deuxième liste (c.-à-d. Ignorez ceux qui se trouvent dans les deux fichiers et uniquement 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)