Respuestas:
De acuerdo con este hilo :
Para enumerar los paquetes instalados:
dpkg --list | wc --lines
Para ver si hay un paquete instalado:
dpkg --list | grep package
dpkg -l | grep -c '^ii'
Existen variantes sutiles como dpkg -l | grep -c '^?i'
si desea incluir paquetes que están instalados pero cuya eliminación ha solicitado. Otra forma es
aptitude search '~i' |wc -l
Incluso puede meter directamente en la base de datos dpkg:
sh -c 'set /var/lib/dpkg/info/*; echo $#'
Este incluye paquetes que no están instalados pero que tienen archivos de configuración sobrantes; puedes enumerarlos con dpkg -l | grep '^rc'
.
dpkg -l
es agradable, pero en realidad me encuentro usando apt-show-versions
(no instalado de forma predeterminada en Debian; instale el paquete del mismo nombre) mucho en su lugar, especialmente cuando quiero procesar más la salida (dpkg intenta ser demasiado inteligente con el ajuste de línea).
Lo que he estado usando es:
dpkg --get-selections | wc --lines
Esto le dará la cantidad de paquetes instalados.
Si desea saber si un paquete en particular está instalado, use:
dpkg --get-selections | grep <package>
Creo que esto resolverá la queja de Gilles sobre la inclusión de otros paquetes no instalados .
Si desea un recuento exacto de paquetes, no debe contar las líneas de encabezado de salida dpkg-query -l
, por lo que necesita un patrón para que coincida con las líneas que comienzan con ii
. La siguiente línea le brinda la cantidad de líneas que comienzan ii
y, por lo tanto, la cantidad de paquetes instalados:
dpkg-query -l | grep "^ii" | wc -l
Esto da el mismo resultado que
dpkg --get-selections | grep "[[:space:]]install" | wc -l
El patrón grep en el segundo comando ignora las líneas que contienen la cadena "desinstalar" en la salida de dpkg --get-selections
.
Por ejemplo, puedes hacer esto:
dpkg-query -l | nl | tail -1 | awk '{print $1}'
nl | tail -1 | awk '{print $1}'
informará el número de líneas en su entrada (excepto, si no hay entrada, no dirá nada en lugar de informar 0
), pero ¿por qué recomendaría tal error cuando otras respuestas ya están usando wc -l
?
rc
(desinstalados pero con archivos de configuración sobrantes)) en su recuento.