Como mostrar o número de pacotes instalados

8

Qual é o equivalente do Debian ao do Fedora yum list installed | grep wc --lines?

tshepang
fonte

Respostas:

11

De acordo com este tópico :

Para listar pacotes instalados:

dpkg --list | wc --lines

Para ver se um pacote está instalado:

dpkg --list | grep package
Justin Ethier
fonte
1
Você está incluindo as linhas de cabeçalho e alguns pacotes não instalados (por exemplo, rc(desinstalado, mas com os arquivos de configuração restantes)) em sua contagem.
Gilles 'SO- stop be evil'
6
dpkg -l | grep -c '^ii'

Existem variantes sutis, como dpkg -l | grep -c '^?i'se você deseja incluir pacotes instalados, mas cuja remoção você solicitou. Outra maneira é

aptitude search '~i' |wc -l

Você pode até cutucar diretamente no banco de dados dpkg:

sh -c 'set /var/lib/dpkg/info/*; echo $#'

Este inclui pacotes que não estão instalados, mas que têm arquivos de configuração restantes; você pode listá-las com dpkg -l | grep '^rc'.

Gilles 'SO- parar de ser mau'
fonte
1

dpkg -lé bom, mas na verdade me pego usando apt-show-versions(não instalado por padrão no Debian; instale o pacote com o mesmo nome) bastante, especialmente quando quero processar a saída ainda mais (o dpkg tenta ser muito inteligente com quebra de linha).

timday
fonte
1

Synaptic , um gerenciador de pacotes da GUI, exibe a contagem na parte inferior da janela principal.

insira a descrição da imagem aqui

tshepang
fonte
0

Se você deseja uma contagem exata de pacotes, não deve contar as linhas de cabeçalho emitidas por dpkg-query -l, portanto, você precisa de um padrão para corresponder às linhas que começam com ii. O one-liner a seguir fornece o número de linhas começando com iie, portanto, o número de pacotes instalados:

dpkg-query -l | grep "^ii" | wc -l 

Isso dá a mesma saída que

 dpkg --get-selections | grep "[[:space:]]install" | wc -l

O padrão grep no segundo comando ignora as linhas que contêm a sequência "deinstall" na saída de dpkg --get-selections.

Tsundoku
fonte
-1

Por exemplo, você pode fazer isso:

dpkg-query -l | nl | tail -1 | awk '{print $1}'
Karim Manaouil
fonte
OK, é verdade que nl | tail -1 | awk '{print $1}'relatará o número de linhas em sua entrada (exceto, se não houver entrada, não dirá nada em vez de gerar relatórios 0) - mas por que você recomendaria esse kludge quando outras respostas já estão sendo usadas wc -l?
G-Man diz 'Reinstate Monica'
Que engraçado, porque eu não li as respostas anteriores! @ G-Man ... mas isso ainda continua sendo uma boa resposta.
Karim Manaouil 07/08/16