dpkg-query -l mostra pacotes removidos, mas dpkg-query -l “pattern” não os encontra - por quê?

2

Acabei de desinstalar algumas versões i386 de certos pacotes. Se eu executar:

dpkg-query --list | grep ":i386"

Eu os vejo listados. Se, no entanto, eu executar:

dpkg-query ---list "*:i386"

Eu não os vejo nem --show em vez de --list help.

Não consigo pesquisar entre todos os pacotes com a própria dpkg-query?

    
por einpoklum 09.05.2017 / 22:59

1 resposta

3

dpkg-query --list está documentado para receber um "package-name-pattern", que é um padrão de shell glob-style no nome do pacote. A arquitetura (o :i386 bit) não faz parte do nome do pacote, portanto, o package-name-pattern não pode corresponder a ele.

Você pode usar grep-dctrl (ou seus aliases, como grep-status e grep-available ) para fazer isso, no entanto. Você precisará instalar o dctrl-tools se ainda não o tiver.

grep-status -sPackage --not -FStatus installed --and -FArchitecture i386

provavelmente faz algo semelhante ao que você está procurando. Isso procura coisas no arquivo de status em que o campo Status não corresponde a "instalado" e o campo Arquitetura corresponde a "i386".

Se você está procurando pacotes i386 deinstalled mas não purgados, tente:

grep-status -sPackage -FStatus config-files --and -FArchitecture i386

ou (como você provavelmente já adivinhou), pacotes i386 instalados:

grep-status -sPackage -FStatus installed --and -FArchitecture i386

Todas as variantes grep-dctrl têm muitas opções para especificar exatamente o que pesquisar e quais campos devem ser exibidos. a página de manual do grep-dctrl tem detalhes.

    
por 09.05.2017 / 23:17