Réponses:
Selon ce fil :
Pour répertorier les packages installés:
dpkg --list | wc --lines
Pour voir si un package est installé:
dpkg --list | grep package
dpkg -l | grep -c '^ii'
Il existe des variantes subtiles comme dpkg -l | grep -c '^?i'
si vous souhaitez inclure des packages installés mais dont vous avez demandé la suppression. Une autre façon est
aptitude search '~i' |wc -l
Vous pouvez même piquer directement dans la base de données dpkg:
sh -c 'set /var/lib/dpkg/info/*; echo $#'
Celui-ci comprend des packages qui ne sont pas installés mais qui ont des fichiers de configuration restants; vous pouvez les lister avec dpkg -l | grep '^rc'
.
Ce que j'utilise, c'est:
dpkg --get-selections | wc --lines
Cela vous donnera le nombre de packages installés.
Si vous souhaitez savoir si un package particulier est installé, utilisez:
dpkg --get-selections | grep <package>
Je crois que cela résoudra la plainte de Gilles concernant l'inclusion d'autres packages non installés .
Si vous voulez un nombre exact de packages, vous ne devez pas compter les lignes d'en-tête produites par dpkg-query -l
, vous avez donc besoin d'un modèle pour faire correspondre les lignes commençant par ii
. Le one-liner suivant vous donne le nombre de lignes commençant par ii
et donc le nombre de packages installés:
dpkg-query -l | grep "^ii" | wc -l
Cela donne la même sortie que
dpkg --get-selections | grep "[[:space:]]install" | wc -l
Le modèle grep dans la deuxième commande ignore les lignes qui contiennent la chaîne "deinstall" dans la sortie de dpkg --get-selections
.
Par exemple, vous pouvez le faire:
dpkg-query -l | nl | tail -1 | awk '{print $1}'
nl | tail -1 | awk '{print $1}'
cela signalera le nombre de lignes dans son entrée (sauf s'il n'y a pas d'entrée, il ne dira rien au lieu de signaler 0
) - mais pourquoi recommanderiez-vous un tel kludge alors que d'autres réponses utilisent déjà wc -l
?
rc
(désinstallés mais avec des fichiers de configuration restants)) dans votre décompte.