Antworten:
Nach diesem Thread :
So listen Sie installierte Pakete auf:
dpkg --list | wc --lines
So sehen Sie, ob ein Paket installiert ist:
dpkg --list | grep package
dpkg -l | grep -c '^ii'
Es gibt subtile Varianten, z. B. dpkg -l | grep -c '^?i'wenn Sie Pakete einschließen möchten, die installiert sind, deren Entfernung Sie jedoch angefordert haben. Ein anderer Weg ist
aptitude search '~i' |wc -l
Sie können sogar direkt in die dpkg-Datenbank stöbern:
sh -c 'set /var/lib/dpkg/info/*; echo $#'
Dieses enthält Pakete, die nicht installiert sind, aber noch Konfigurationsdateien enthalten. Sie können diese mit auflisten dpkg -l | grep '^rc'.
Was ich benutzt habe ist:
dpkg --get-selections | wc --lines
Dadurch erhalten Sie die Anzahl der installierten Pakete.
Wenn Sie herausfinden möchten, ob ein bestimmtes Paket installiert ist, verwenden Sie:
dpkg --get-selections | grep <package>
Ich glaube, dass dies Gilles 'Beschwerde über die Aufnahme anderer, nicht installierter Pakete lösen wird .
Wenn Sie eine genaue Anzahl von Paketen wünschen, sollten Sie die ausgegebenen Kopfzeilen nicht zählen dpkg-query -l, daher benötigen Sie ein Muster, das mit den Zeilen beginnt, mit denen begonnen wird ii. Der folgende Einzeiler gibt Ihnen die Anzahl der Zeilen beginnend mit iiund damit die Anzahl der installierten Pakete an:
dpkg-query -l | grep "^ii" | wc -l
Dies ergibt die gleiche Ausgabe wie
dpkg --get-selections | grep "[[:space:]]install" | wc -l
Das grep-Muster im zweiten Befehl ignoriert Zeilen, die die Zeichenfolge "deinstall" in der Ausgabe von enthalten dpkg --get-selections.
Zum Beispiel können Sie dies tun:
dpkg-query -l | nl | tail -1 | awk '{print $1}'
nl | tail -1 | awk '{print $1}'die Anzahl der Zeilen in seiner Eingabe gemeldet wird (außer wenn keine Eingabe vorhanden ist, wird nichts gesagt, anstatt zu melden 0) - aber warum würden Sie einen solchen Kludge empfehlen, wenn andere Antworten bereits verwendet werden wc -l?
rc(deinstalliert, aber mit verbleibenden Konfigurationsdateien)) in Ihre Zählung auf.