Un altro modo per farlo è determinare cosa è stato installato in base alle "attività" che determinano i pacchetti di base da installare in base alle proprie esigenze iniziali.
tasksel --list-tasks
Per lo meno avresti server
. Tuttavia, puoi scegliere di averne di più. Per ognuna di quelle attività che hai installato, puoi ottenere un elenco di pacchetti che sono installati il seguente comando fa tutto in una riga (suddiviso per chiarezza) per quelli che ho scelto nella mia installazione:
(tasksel --task-packages server ; \
tasksel --task-packages openssh-server ; \
tasksel --task-packages lamp-server) | sort | uniq
Un approccio generico a quanto sopra sarebbe:
(for a in $( tasksel --list-tasks | grep "^i" | awk '{ print $2 }' ) ; \
do tasksel --task-packages $a; done) | sort | uniq
Ora usa apt-cache depends --installed -i --recurse <packagename> | grep -v "^ "
per ottenere un elenco di dipendenze utilizzate da tutti i pacchetti definiti nell'attività. Questo può essere fatto in una riga come segue
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
Di seguito sono elencati tutti i pacchetti installati nel sistema (escluse le dipendenze).
dpkg --get-selections | grep "[[:space:]]install" | awk '{print $1}'
Ora usa il comm
comando per trovare quelli che sono solo nel secondo elenco (cioè ignora quelli che si trovano in entrambi i file e solo nel primo file)
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)