Apt-cache: Como listar todos os pacotes instalados com o número da versão?

51

apt-cache dump --installed não funciona, ele lista os pacotes desinstalados também.

Quero listar os pacotes de instalação, cada um por uma linha, com o número da versão instalada.

Xiè Jìléi
fonte
3
bug # 775771 restringir os resultados da pesquisa do apt-cache aos pacotes instalados
bartolo-otrit

Respostas:

53

experimentar dpkg -l

lista os pacotes, versão e uma breve descrição.

kev
fonte
1
Eu também gosto, apt-show-versionspois mostra também qual é uptotdate.
malat 20/05/19
37

A maneira mais simples é usar dpkg, mas pode mostrar alguns pacotes estranhos e truncar nomes longos de pacotes e números de versão:

dpkg -l

Para listar apenas pacotes instalados corretamente e não truncar nomes:

dpkg -l | grep '^ii'

Para obter mais controle sobre o formato de saída, você pode usar dpkg-query:

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'
Gilles 'SO- parar de ser mau'
fonte
13

Outro comando pode ser:

apt-show-versions

Também fornece informações sobre o estado do pacote (atualizado, atualizável, ...) e sobre a distribuição de origem (wheezy, jessie, ...). Pode-se filtrar facilmente pacotes provenientes de backports ou outros repositórios exóticos.

Este programa é empacotado separadamente. Instale-o primeiro com:

apt-get install apt-show-versions
SkyRaT
fonte
Isso é muito bom, pois mostra a versão para a qual um pacote pode ser atualizado. +1.
Randall Cozinhe
combinado com apt-mark showmanualisso dá-lhe uma agradável e fácil de recuperar versões de todos os pacotes instalados manualmente, veja também esta resposta Askubuntu apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Gregor
4

O comando a seguir lista os pacotes com suas versões e , além disso , permite configurar um sistema com os mesmos pacotes e versões posteriormente, usando o pkg-selections.txtarquivo gerado aqui:

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

Cada linha conterá o nome do pacote, versão e um "A" opcional se o pacote foi instalado automaticamente.

Fonte: " Clonando um sistema Debian - pacotes e versões idênticas ". Também contém o script que configura um sistema pkg-selections.txt.

tanius
fonte
4

Para listar os nomes de cada pacote instalado, digite como qualquer usuário:

dpkg --get-selections

Você obterá uma saída como esta:

accountsservice              install
aclinstall                   install
acpi-supportinstall          install
acpidinstall                 install
...

Para remover a cadeia de caracteres desnecessária "install", você pode usar sed :

dpkg --get-selections | sed 's:install$::'

E se você não quiser salvá-lo em um arquivo chamado InstalledPackages , digite:

dpkg --get-selections | sed 's:install$::' > InstalledPackages
Rémi G.
fonte
1

Se você não tiver acesso ao sistema ativo e tiver um backup da /partição raiz , poderá:

root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app

Agora isso /root/installed_appcontém todos os pacotes instalados!

sasha2002
fonte