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 ii
und 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.