Eu costumava procurar pacotes locais usando o Synaptic. Aqueles pacotes que estão instalados localmente, mas não têm correspondência exata nos repositórios ativos atuais. Como é explicado neste post: O que significa "local ou obsoleto" no Synaptic .
Acho esse recurso muito útil quando se trata de depurar problemas de dependências não atendidas . Embora eu saiba como obter a lista de pacotes obsoletos , não consegui encontrar uma maneira de pacotes locais.
Então, existe alguma linha de comando equivalente que liste todos os pacotes locais?
Nota para explicar os idiomas que usei.
- pacote órfão : instalado automaticamente como dependência, então o dependente foi removido.
- pacote obsoleto : instalado mas nenhum pacote com o mesmo (nome, arquitetura) no repositório.
- pacote local : instalado mas nenhum pacote com o mesmo (nome,arquitetura, versão ) no repositório.
Então não me refiro a todos os pacotes instalados .
Caso de teste
- Synaptic → Menu: Configurações → Repositórios → Atualizações: Ativar atualizações não suportadas (backports) (Nota: eu uso como exemplo de PPA)
- Recarregar listas de pacotes
- Procure por
debhelper
, selecione-o. Menu:Pacotes → Forçar Versão ...: Selecione e instale a versão de backports (Geralmente a versão mais alta) - Menu:Configurações → Repositórios → Atualizações: Desabilitar atualizações não suportadas (backports) (Nota: eu uso como exemplo de PPA)
- Recarregar listas de pacotes
Compare agora entre essas duas listas:
Synaptic → SideBar:Status → Instalado (local e obsoleto)
aptitude search '~o'
user@user-vb:~$ aptitude search '~o' i A linux-headers-4.15.0-19 - Header files related to Linux kernel version 4.15.0 i A linux-headers-4.15.0-19-generic - Linux kernel headers for version 4.15.0 on 64 bit x86 SMP i A linux-image-4.15.0-19-generic - Signed kernel image generic i A linux-modules-4.15.0-19-generic - Linux kernel extra modules for version 4.15.0 on 64 bit x86 i A linux-modules-extra-4.15.0-19-generic - Linux kernel extra modules for version 4.15.0 on 64 bit x86 user@user-vb:~$
Encontre pacotes instalados que não se originam de nenhum source.list ou não podem ser baixados.
Ou forma curta:
?narrow
(filtro, padrão)Selecione os pacotes que correspondem ao filtro e ao padrão.
?or
(padrão, padrão)Corresponde a qualquer um dos padrões ou ambos.
?origin
(padrão)Selecione os pacotes com determinada origem.
?obsolete
Corresponde a pacotes instalados que não podem ser baixados.
?installed
Selecione os pacotes instalados.
?not
(padrão) ou!
Selecione qualquer pacote que não corresponda ao padrão.
apt list --installed
rotula os pacoteslocal
de uma maneira que parece concordar com sua definição (veja minha resposta aqui ). Você pode filtrar apenas pacotes rotulados com ask, grep, etc.:Você provavelmente também pode fazer uma verificação semelhante usando a API Python APT .
Com
apt-show-versions | grep -e 'No available version' -e 'newer than version'
você deve obter a lista de pacotes:Provavelmente você precisa instalá-lo de antemão com
sudo apt install apt-show-versions