Como listar todos os pacotes instalados

1762

Gostaria de exibir uma lista de todos os pacotes instalados em um arquivo de texto para que eu possa revisá-lo e instalar em massa em outro sistema. Como eu faria isso?

    
por Ivan 17.12.2010 / 03:08

23 respostas

1973

Ubuntu 14.04 e acima

A ferramenta apt no Ubuntu 14.04 e acima torna isso muito fácil.

apt list --installed

Versões mais antigas

Para obter uma lista de pacotes instalados localmente, faça isso no seu terminal:

dpkg --get-selections | grep -v deinstall

(A tag -v "inverte" o grep para retornar linhas não correspondentes)

Para obter uma lista de um pacote específico instalado:

dpkg --get-selections | grep postgres

Para salvar essa lista em um arquivo de texto chamado packages na sua área de trabalho, faça isso no terminal:

dpkg --get-selections | grep -v deinstall > ~/Desktop/packages

Alternativamente, simplesmente use

dpkg -l

(você não precisa executar nenhum desses comandos como superusuário, portanto, não há sudo ou quaisquer outras variantes necessárias aqui)

    
por Sabacon 17.12.2010 / 04:02
400

Para obter apenas os pacotes que foram expressamente instalados (não apenas instalados como dependências), você pode executar

aptitude search '~i!~M'

Isso também incluirá uma breve descrição, que você pode desejar. Caso contrário, adicione também a opção -F '%p' , conforme mencionado por karthick87.

No entanto, outra opção parece ser copiar o arquivo /var/lib/apt/extended_states , que é um banco de dados de arquivo de texto neste formato:

Package: grub-common
Architecture: amd64
Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1

Auto-Installed: 0 indica que o pacote foi expressamente instalado e não é apenas uma dependência.

    
por intuited 28.08.2012 / 23:35
195

Para listar todos os pacotes instalados intencionalmente (não como dependências) pelos comandos apt, execute o seguinte:

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep '^Commandline:'

Isso fornece uma visualização baseada em tempo inverso, com os comandos antigos listados primeiro:

Commandline: apt-get install k3b
Commandline: apt-get install jhead
...

Dados de instalação também mostrando o uso de synaptic, mas sem detalhes (o mesmo com a data de instalação):

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
  egrep '^(Start-Date:|Commandline:)' |
  grep -v aptdaemon |
  egrep -B1 '^Commandline:'

fornecendo o seguinte:

Start-Date: 2012-09-23  14:02:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23  15:02:51
Commandline: apt-get install sysstat
...
    
por bcl 02.02.2013 / 11:39
188

Crie um backup dos pacotes atualmente instalados:

dpkg --get-selections > list.txt

Em seguida (em outro sistema), restaure as instalações dessa lista:

dpkg --clear-selections
sudo dpkg --set-selections < list.txt

Para se livrar de pacotes obsoletos:

sudo apt-get autoremove

Para instalar como no tempo de backup (por exemplo, para instalar pacotes definidos por dpkg --set-selections ):

sudo apt-get dselect-upgrade
    
por gogaman 16.05.2012 / 20:26
73
apt-mark showmanual

estado das páginas man:

will print a list of manually installed packages

Portanto, deve-se apenas fornecer uma lista de pacotes explicitamente instalados (embora isso inclua pacotes que faziam parte da instalação inicial padrão) sem todas as dependências incluídas devido à instalação desses pacotes.

Para gerar o resultado em um arquivo de texto:

apt-mark showmanual > list-manually-installed.txt
    
por Tim Tisdall 10.07.2014 / 15:43
40

dpkg-query (em vez de dpkg --get-selections , que lista alguns pacotes que não estão instalados) da seguinte forma:

dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed |  sort -u | cut -f1 -d \ > installed-pkgs

Ou:

dpkg -l | grep ^ii | sed 's_  _\t_g' | cut -f 2 > installed-pkgs
    
por kyleN 16.05.2012 / 20:40
39

Para listar todos os pacotes instalados,

dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt

ou

aptitude search -F '%p' '~i' > 1.txt

ou

dpkg --get-selections > 1.txt

Nota:
Você obterá o arquivo 1.txt do resultado em sua pasta pessoal ou poderá especificar seu próprio caminho.

    
por karthick87 17.12.2010 / 04:35
35

Você pode usar o Synaptic para salvar o estado atual dos pacotes instalados. No Synaptic, selecione "file / save markings", digite o nome do arquivo para salvar o estado e certifique-se de marcar a caixa "Save full state, not only changes".

O arquivo salvo pode ser carregado em uma nova máquina usando "marcas de arquivo / leitura" no Synaptic.

    
por Nerdfest 17.12.2010 / 05:46
34

Eu recomendo usar o blueprint . Embora seja projetado para servidores, também pode ser usado em desktops. Ele criará um shell script / chef / puppet que você pode usar para reinstalar todos os seus pacotes.

    
por Tamer 12.04.2011 / 14:26
33

Você deseja reinstalar os pacotes agora mesmo em 12.04, certo?

Se sim, é muito fácil. Você precisará de uma conta "Single Sign On do Ubuntu". (Crie-o antes de reinstalar para que seu sistema seja sincronizado.)

  1. Vá até o Centro de Software e procure a opção "Sincronizar entre computadores ..." no menu Arquivo.

  2. Ao clicar nele, você verá seu computador registrado e uma lista de todos os aplicativos no seu computador.

  3. Quando você instalar o novo, esse computador será considerado um novo computador.

  4. Você só precisa fazer login na sua conta do Ubuntu e seu computador anterior será exibido.

  5. Clique nele; você terá uma lista de todos os aplicativos. Selecione "instalar" no aplicativo que você deseja instalar.

por Nirmik 16.05.2012 / 20:26
32

Há também uma ferramenta chamada Aptik (linha de comando e GUI) que pode ajudá-lo a visualizar uma lista de todos os pacotes instalados, com uma opção para selecionar / desmarcar alguns deles, criar uma lista de backup e, em seguida, restaure o mesmo conjunto de pacotes em outro sistema.

Para instalar:

sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik

Mais informações: link

Como pode ser visto na captura de tela, o Aptik permite que você também faça backup e restaure os PPAs , o que certamente será necessário para instalar alguns dos pacotes instalados.

    
por Sadi 30.05.2014 / 22:22
29

APT-Clone. This package can be used to clone/restore the packages on a apt based system.

  • It will save/restore the packages, sources.list, keyring and automatic-installed states.
  • It can also save/restore no longer downloadable packages using dpkg-repack.

source: man apt-clone

O APT-Clone é usado por ubiquity (instalador do Ubuntu) para o processo de atualização. É muito melhor que a solução dpkg --get-selections porque:

  1. Preserva todas as informações dos repositórios.
  2. Ele acompanha quais pacotes foram instalados automaticamente.
  3. Permite reembalar arquivos DEB instalados localmente.

Como usar

  1. Instalar

    sudo apt-get install apt-clone
    
  2. Faça backup

    sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. Restaurar backup

    sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
    

    Restaurar para uma versão mais recente:

    sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
    

Faz um simples arquivo tar gzipado que pode ser facilmente editado e revisado antes de ser restaurado nas outras máquinas. Aqui um exemplo de sua estrutura:

/
├── etc
│   └── apt
│       ├── preferences.d
│       ├── sources.list
│       ├── sources.list.d
│       │   ├── anton_-ubuntu-dnscrypt-vivid.list
│       │   ├── maarten-baert-ubuntu-simplescreenrecorder-vivid.list
│       │   └── megasync.list
│       ├── trusted.gpg
│       └── trusted.gpg.d
│           ├── anton__ubuntu_dnscrypt.gpg
│           ├── anton__ubuntu_dnscrypt.gpg~
│           ├── maarten-baert_ubuntu_simplescreenrecorder.gpg
│           └── maarten-baert_ubuntu_simplescreenrecorder.gpg~
└── var
    └── lib
        └── apt-clone
            ├── extended_states
            ├── installed.pkgs
            └── uname
    
por user.dz 06.09.2015 / 01:09
26

uma ótima explicação sobre o Unix StackExchange que descreve como usar o aptitude para listar pacotes não instalados como dependências, e como comparar essa lista com a lista de pacotes padrão para sua versão do Ubuntu.

Para obter o arquivo de manifesto das versões desktop do 12.04 e mais recentes, visite este site , escolha o release e role para baixo abaixo das imagens do CD para a seção de arquivos. Você encontrará algo como "ubuntu-12.04.4-desktop-amd64 + mac.manifest" que corresponde à sua arquitetura.

Para as versões do servidor, você precisará obter o arquivo de manifesto do ISO que foi usado para instalar o sistema original. Para um servidor VPS ou na nuvem, seu provedor pode disponibilizar as imagens ou talvez seja necessário contatá-las.

Veja um exemplo usando o código da postagem referenciada, juntamente com as modificações para instalar no novo servidor.

Servidor antigo (código de outro post, saída salva em arquivo):

aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currently-installed.list
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest \
  | cut -f1 | sort -u > default-installed.list
comm -23 currently-installed.list default-installed.list > user-installed.list

No novo servidor, copie o arquivo usando scp e, em seguida, use sed para anexar 'install' a cada linha (-i executa uma substituição inline). Então você pode usar a lista como entrada para 'dpkg --set-selections' e instalar os pacotes com apt-get:

scp [email protected]:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
sudo dpkg --set-selections < user-installed.list
sudo apt-get dselect-upgrade

Antes de iniciar esta tarefa, recomendo que você leia e entenda todas as partes do post mencionadas no início e, em seguida, consulte o guia de referência do aptitude para detalhes sobre padrões de pesquisa.

    
por thinkmassive 10.02.2014 / 17:35
25

Você pode ver o apt log em /var/log/apt/ e o dpkg log em /var/log/

e você pode obter a lista dos pacotes instalados com apenas um comando:

dpkg -l | grep '^ii '
    
por Maythux 13.03.2014 / 11:36
23

Surpreende-me que o comando apt-cache projetado exatamente para essa finalidade não tenha sido mencionado acima ...

apt-cache pkgnames

Para mais informações, execute apt-cache --help :

**apt-cache is a low-level tool used to query information
from APT's binary cache files

Commands:
   gencaches - Build both the package and source cache
   showpkg - Show some general information for a single package
   showsrc - Show source records
   stats - Show some basic statistics
   dump - Show the entire file in a terse form
   dumpavail - Print an available file to stdout
   unmet - Show unmet dependencies
   search - Search the package list for a regex pattern
   show - Show a readable record for the package
   depends - Show raw dependency information for a package
   rdepends - Show reverse dependency information for a package
   pkgnames - List the names of all packages in the system
   dotty - Generate package graphs for GraphViz
   xvcg - Generate package graphs for xvcg
   policy - Show policy settings

Options:
  -h   This help text.
  -p=? The package cache.
  -s=? The source cache.
  -q   Disable progress indicator.
  -i   Show only important deps for the unmet command.
  -c=? Read this configuration file
  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp
See the apt-cache(8) and apt.conf(5) manual pages for more information.
**
    
por ostrokach 14.08.2015 / 21:35
20

Para o resumo completo, consulte:

link

na metade da página:

dpkg --list

    
por adriano72 31.07.2013 / 15:21
18

O comando abaixo também lista todos os pacotes instalados,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
    
por Avinash Raj 30.05.2014 / 20:36
16

Para salvar uma lista de pacotes instalados em um arquivo chamado installed_packages.txt , apenas execute:

dpkg-query --list >> installed_packages.txt
    
por wb9688 12.05.2015 / 10:29
16

Ajude este wiki da comunidade - Adicione soluções atualizadas.

dpkg, xargs e & apt-get

Este comando deve realizar a criação de um arquivo de texto contendo pacotes instalados:

dpkg -l | awk  '{print $2}' > package_list.txt

Para realizar a instalação em massa dos pacotes listados, você precisará editar o arquivo 'package_list.txt'. Remova as linhas estranhas na parte superior do arquivo usando um editor de texto. Você pode então usar este comando para instalar pacotes do arquivo criado usando:

xargs < package_list.txt apt-get install -y

apt-cache, xargs e & apt-get

Use este método somente se quiser que os all pacotes atuais sejam instalados usando a lista ( que inclui instalado automaticamente, etc).

Envie a resposta do 'apt-cache pkgnames' para um arquivo que simplesmente nomeamos "package_list.txt". Você pode conseguir isso com:

apt-cache pkgnames > package_list.txt

Então quando você quiser instalar pacotes de "package_list.txt" você usaria este comando:

xargs < package_list.txt apt-get install -y

apt-mark, xargs, & apt-get

Podemos usar o comando apt-mark showmanual para fornecer uma lista de pacotes que foram instalados manualmente ou inicialmente com o Ubuntu. Vamos querer dar um resultado em um arquivo que vamos chamar de "package-list.txt". Use este comando para realizar isso:

apt-mark showmanual > package-list.txt

O comando que usaríamos para instalar os pacotes do arquivo "package_list.txt" está abaixo.

xargs < package_list.txt apt-get install -y

Aptik Migration Utility

Utility to simplify re-installation of software packages after upgrading/re-installing Ubuntu-based distributions.
[Launchpad | Aptik]

Para informações sobre o Aptik, visite sua página oficial e, para uma captura de tela, clique em aqui ou veja o final desta seção.

Instalar o Aptik é simples. Siga estas etapas:

  1. Adicione o PPA com:% sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Atualize com o comando abaixo.
    sudo apt-get update

  3. Instale Aptik usando: sudo apt-get install aptik

por David your friend 31.03.2019 / 04:43
3

1. Listar os pacotes de software instalados no Ubuntu

Para listar os pacotes de software instalados em sua máquina, você pode usar o seguinte comando:

sudo apt list --installed

A saída do comando será muito semelhante à seguinte, dependendo de quais pacotes estão atualmente instalados:

Listing...
acl/xenial,now 2.2.52-3 amd64 [installed]
adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed]
apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic]
apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apparmor/xenial-updates,now 2.10.95-0ubuntu2.5 amd64 [installed,automatic]
apt/xenial-updates,now 1.2.19 amd64 [installed]
apt-utils/xenial-updates,now 1.2.19 amd64 [installed]
...

2. Use o programa LESS

Para ler facilmente toda a saída, você pode usar o programa less .

sudo apt list --installed | less

3. Use o comando GREP

Você pode procurar um pacote específico na saída usando o programa grep .

sudo apt list --installed | grep -i apache

4. Listar todos os pacotes que incluem o Apache

A saída do comando acima listará todos os pacotes que incluem apache em seus nomes.

apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic]
apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed]
libapache2-mod-php/xenial,xenial,now 1:7.0+35ubuntu6 all [installed,automatic]
libapache2-mod-php7.0/xenial-updates,now 7.0.13-0ubuntu0.16.04.1 amd64 [installed,automatic]
libapache2-mod-security2/xenial,now 2.9.0-1 amd64 [installed]
libapache2-modsecurity/xenial,xenial,now 2.9.0-1 all [installed]

O Apt oferece suporte a padrões para corresponder nomes de pacotes e opções a fim de listar (--installed) packages instalados,% de(--upgradeable) pacotes atualizáveis ou todas as versões disponíveis do pacote (--all-versions) .

5. Use o programa DPKG

Outra alternativa que você pode usar para listar os pacotes de software instalados no seu Ubuntu VPS é o comando dpkg .

sudo dpkg -l

A saída do comando fornecerá informações como o nome do pacote, versão, arquitetura e breve descrição sobre o pacote. Claro, você pode usar o programa grep novamente para procurar por um pacote específico.

sudo dpkg -l | grep -i apache

A saída deve se parecer com a abaixo:

ii  apache2                       2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server
ii  apache2-bin                   2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server (modules and other binary files)
ii  apache2-data                  2.4.18-2ubuntu3.1                     all          Apache HTTP Server (common files)
ii  apache2-doc                   2.4.18-2ubuntu3.1                     all          Apache HTTP Server (on-site documentation)
ii  apache2-utils                 2.4.18-2ubuntu3.1                     amd64        Apache HTTP Server (utility programs for web servers)
rc  apache2.2-common              2.2.22-6ubuntu5.1                     amd64        Apache HTTP Server common files
ii  libapache2-mod-php            1:7.0+35ubuntu6                       all          server-side, HTML-embedded scripting language (Apache 2 module) (default)
rc  libapache2-mod-php5           5.5.9+dfsg-1ubuntu4.16                amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.0         7.0.13-0ubuntu0.16.04.1               amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-security2      2.9.0-1                               amd64        Tighten web applications security for Apache
ii  libapache2-modsecurity        2.9.0-1                               all          Dummy transitional package
ii  libapr1:amd64                 1.5.2-3                               amd64        Apache Portable Runtime Library
ii  libaprutil1:amd64             1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library
ii  libaprutil1-dbd-sqlite3:amd64 1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library - SQLite3 Driver
ii  libaprutil1-ldap:amd64        1.5.4-1build1                         amd64        Apache Portable Runtime Utility Library - LDAP Driver
.

Com a concorrência deste tutorial, você aprendeu com sucesso como listar pacotes instalados no Ubuntu.

    
por 19.10.2018 / 08:54
2

Acho interessante notar que apt list --installed ou dpkg-query --list usam o arquivo chamado /var/lib/dpkg/status atrás, onde todas as informações sobre os pacotes são barba.

Então, se você gostaria de lidar com a extensa lista de pacotes apenas cat /var/lib/dpkg/status .

Nota: não altere o arquivo /var/lib/dpkg/status .

    
por 16.08.2018 / 21:44
0

O pacote dctrl-tools fornece a ferramenta grep-status para obter a lista dos pacotes marcados como instalados em seu sistema:

sudo apt install dctrl-tools

Uso:

grep-status -FStatus -sPackage -n   "install ok installed"

veja: man dctrl-tools

    
por 22.11.2018 / 12:11
0

Existem muitas maneiras de fazer isso. Caso você esteja usando o CentOS como eu, você pode usar estes: 1. yum list installed 2. rpm -qa

    
por 31.01.2019 / 22:03