Como listar todos os pacotes instalados

Eu gostaria de enviar 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 é que eu faria isto?

Ubuntu 14.04 e acima

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

apt list --installed

versao

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

dpkg --get-selections | grep -v deinstall

(O -v tag & quot;inverte & quot; 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 seu terminal:

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

Como alternativa, basta usar

dpkg -l

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

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 querer. Caso contrário, adicione também a opção -F '%p', como mencionado por karthick87.


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

Package: grub-commonArchitecture: amd64Auto-Installed: 0Package: linux-headers-2.6.35-22-genericArchitecture: amd64Auto-Installed: 1

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

Para listar todos os pacotes intencionalmente instalado (não como dependências) por 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 reverso, com comandos mais antigos listados primeiro:

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

Os dados de instalação também mostram o uso sináptico, 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:14Commandline: apt-get install gpartedStart-Date: 2012-09-23  15:02:51Commandline: apt-get install sysstat...

Crie um backup de quais pacotes estão instalados atualmente:

dpkg --get-selections > list.txt

Então (em outro sistema) restaure as instalações dessa lista:

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

Para se livrar de Pacotes obsoletos:

sudo apt-get autoremove

Para ser instalado como no momento do backup (ou seja, para instalar pacotes definidos por dpkg --set-selections):

sudo apt-get dselect-upgrade
apt-mark showmanual

man pages estado:

imprimirá uma lista de pacotes instalados manualmente

Portanto, ele deve 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 enviar o resultado para um arquivo de texto:

apt-mark showmanual > list-manually-installed.txt

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

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

Notar:
Você obterá o resultado 1.arquivo TXT em sua pasta inicial ou você pode especificar seu próprio caminho.

Você pode usar o Synaptic para salvar o estado atual do pacote instalado. No Synaptic, selecione "Arquivo / Salvar marcações", digite o nome do arquivo para salvar o estado e verifique a caixa" Salvar estado completo, não apenas alterações".

O arquivo salvo disso pode ser carregado em uma nova máquina usando "marcações de arquivo / leitura" no Synaptic.

Eu recomendo usar plano. Mesmo sendo projetado para servidores, ele também pode ser usado em desktops. Ele criará um script de shell / chef / puppet que você usa para reinstalar todos os seus pacotes.

Você quer reinstalar os pacotes agora lá em 12.04, certo?

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

  1. Vá para o centro de Software e procure a " sincronização entre computadores..."opção no menu Arquivo.

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

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

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

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

Related.

Similar question at unix.stackexchange.com “List packages by installation date”