Gostaria de exibir uma lista de todos os pacotes instalados em um arquivo de texto para que eu possa revisar e instalar em massa em outro sistema. Como eu faria isso?
Gostaria de exibir uma lista de todos os pacotes instalados em um arquivo de texto para que eu possa revisar e instalar em massa em outro sistema. Como eu faria isso?
Respostas:
A apt
ferramenta no Ubuntu 14.04 e superior torna isso muito fácil.
apt list --installed
Para obter uma lista dos pacotes instalados localmente, faça isso no seu terminal:
dpkg --get-selections | grep -v deinstall
(A -v
tag "inverte" 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 á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, portanto, nenhuma sudo
ou outras variantes são necessárias aqui)
cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade
código
sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrade
faz o truque.
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 inclui uma breve descrição, que você pode desejar. Caso contrário, adicione também a opção -F '%p'
, conforme mencionado por karthick87.
Ainda 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 instalado expressamente e não é apenas uma dependência.
apt-get
?
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 visão baseada em tempo inverso, com os comandos mais antigos listados primeiro:
Commandline: apt-get install k3b
Commandline: apt-get install jhead
...
Dados de instalação também mostrando 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:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23 15:02:51
Commandline: apt-get install sysstat
...
zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
dpkg
??
Crie um backup de quais pacotes estão 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 ser instalado como no momento do backup (ou seja, para instalar os pacotes definidos por dpkg --set-selections
):
sudo apt-get dselect-upgrade
ubuntu-desktop
foi desinstalado - provavelmente devido a um dos comandos do dpkg. tenha cuidado, levei horas para reparar os danos!
sudo apt-mark hold name-your-package
. Isso impedirá o apt-get de atualizar para a versão atual, que é o padrão para o processo de atualização.
apt-mark showmanual
estado das páginas de manual:
irá imprimir uma lista de pacotes instalados manualmente
Portanto, ele deve fornecer apenas uma lista de pacotes instalados explicitamente (embora isso inclua os 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
apt-mark showmanual
não é verdade. Ele também lista vários pacotes instalados automaticamente, provavelmente parte da instalação base.
apt list --manual-installed
.
dpkg-query
(em vez de dpkg --get-selections
, que lista alguns pacotes que não estão instalados) da seguinte maneira:
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
# for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; done
no segundo sistema, eu fiz isso para instalar os Pacotes.
apt-get install -y $(< installed-pkgs)
fará com que o apt-get seja executado apenas uma vez e cuide de todas as dependências de uma só vez.
sudo apt-get build-dep name-package; sudo apt-get install name-package;
?
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 resultante na sua pasta pessoal ou poderá especificar seu próprio caminho.
Você pode usar o Synaptic para salvar o estado atual do seu pacote instalado. No Synaptic, selecione "arquivo / salvar marcações", digite o nome do arquivo no qual salvar o estado e marque 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 o blueprint . Embora tenha sido projetado para servidores, também pode ser usado em desktops. Ele criará um shell script / chef / fantoche que você poderá usar para reinstalar todos os seus pacotes.
Você deseja reinstalar os pacotes agora lá no 12.04, certo?
Se assim for, é muito fácil. Você precisará de uma "conta de logon único do Ubuntu". (Crie-o antes de reinstalar para que seu sistema seja sincronizado.)
Vá para o Software Center e procure a opção "Sincronizar entre computadores ..." no menu Arquivo.
Ao clicar nele, você verá seu computador registrado e uma lista de todos os aplicativos no seu computador.
Quando você instalar novamente, esse computador será considerado um novo computador.
Você só precisa fazer login na sua conta do Ubuntu e o computador anterior será mostrado.
Clique nisso; você receberá uma lista de todos os aplicativos. Selecione "instalar" no aplicativo que você deseja instalar.
Há também uma ferramenta chamada Aptik (linha de comando e GUI) que pode ajudá-lo a exibir uma lista de todos os pacotes instalados, com uma opção para selecionar / desmarcar alguns deles, fazer uma lista de backup e restaurar 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: https://teejeetech.in/aptik/
Como pode ser visto na captura de tela, o Aptik também permite fazer backup e restaurar PPAs , o que certamente será necessário para instalar alguns dos pacotes instalados.
apt-get install aptik-gtk
bem
APT-Clone . Este pacote pode ser usado para clonar / restaurar os pacotes em um sistema baseado no apt.
- Ele salvará / restaurará os pacotes, sources.list, chaveiro e estados instalados automaticamente.
- Também pode salvar / restaurar pacotes que não podem ser baixados usando o dpkg-repack.
fonte:
man apt-clone
O APT-Clone é usado pelo ubiquity
(instalador do Ubuntu) para o processo de atualização. É muito melhor que a dpkg --get-selections
solução porque:
Como usar
Instalar
sudo apt-get install apt-clone
Faça backup
sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
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)
Ele cria um arquivo tar compactado com gzip que pode ser facilmente editado e revisado antes de ser restaurado nas outras máquinas. Aqui está 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
Há 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 para as versões 12.04 e mais recentes da área de trabalho, visite este site , escolha sua versão e role 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 versões do servidor, você precisará obter o arquivo de manifesto do ISO usado para instalar o sistema original. Para um servidor VPS ou em nuvem, seu provedor pode disponibilizar as imagens ou você pode precisar contatá-las.
Aqui está um exemplo usando o código da publicação mencionada, juntamente com modificações para instalar no novo servidor.
Servidor antigo (código de outra postagem, saída salva no 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 use sed para anexar 'install' a cada linha (-i executa uma substituição em linha). Então você pode usar a lista como entrada para 'dpkg --set-selections' e instalar os pacotes com o apt-get:
scp user@oldserver: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 ler e entender todas as partes da postagem mencionada no início e, em seguida, consulte o guia de referência do aptitude para obter detalhes sobre os padrões de pesquisa.
Estou surpreso que o apt-cache
comando projetado exatamente para esse fim não tenha sido mencionado acima ...
apt-cache pkgnames
Para mais informações, execute apt-cache --help
:
** apt-cache é uma ferramenta de baixo nível usada para consultar informações dos arquivos de cache binário do APT Comandos: gencaches - Construa o pacote e o cache de origem showpkg - Mostra algumas informações gerais para um único pacote showsrc - Mostrar registros de origem stats - Mostra algumas estatísticas básicas despejo - mostra o arquivo inteiro em uma forma concisa dumpavail - imprime um arquivo disponível no stdout unmet - Mostra dependências não atendidas search - Pesquise na lista de pacotes um padrão de regex show - Mostra um registro legível para o pacote depende - Mostra informações brutas de dependência para um pacote rdepends - Mostra informações de dependência reversa para um pacote pkgnames - lista os nomes de todos os pacotes no sistema dotty - Gere gráficos de pacotes para o GraphViz xvcg - Gere gráficos de pacotes para xvcg política - Mostrar configurações de política Opções: -h Este texto de ajuda. -p =? O cache do pacote. -s =? O cache de origem. -q Desativa o indicador de progresso. -i Mostra apenas deps importantes para o comando não atendido. -c =? Leia este arquivo de configuração -o =? Defina uma opção de configuração arbitrária, por exemplo, -o dir :: cache = / tmp Veja as páginas de manual do apt-cache (8) e apt.conf (5) para mais informações. **
apt --installed list
dá o melhor resultado (conforme sugerido na resposta superior acima. Embora apt-cache pkgnames
pareça fazer o truque à primeira vista, ele lista "todos os pacotes no sistema" (conforme o texto de ajuda acima), que também inclui pacotes que o apt conhece. . mas não são realmente instalado Há uma --installed
opção, mas não parece trabalhar com pkgnames
.
apt-cache pkgnames | wc -l
dá 55909
pacotes (o sistema conhece), enquanto aptitude search '~i!~M' | wc -l
dá 2160
(pacotes instalados explicitamente, sem dependências).
Para o resumo completo, consulte:
a meio da página:
dpkg --list
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
/var/log/dpkg.log*
para obter todos os logs girados.
Ajude este wiki da comunidade - Adicione soluções atualizadas.
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 'package_list.txt'. Remova as linhas estranhas na parte superior do arquivo usando um editor de texto. Você pode usar este comando para instalar pacotes a partir do arquivo criado usando:
xargs < package_list.txt apt-get install -y
Use este método apenas se desejar que todos os pacotes atuais sejam instalados usando a lista ( que inclui automaticamente instalados, etc).
Envie a resposta de 'apt-cache pkgnames' para um arquivo que simplesmente chamaremos de "package_list.txt". Você pode fazer isso com:
apt-cache pkgnames > package_list.txt
Então, quando você deseja instalar pacotes a partir de "package_list.txt", você usaria este comando:
xargs < package_list.txt apt-get install -y
Podemos usar o comando apt-mark showmanual
para fornecer uma lista de pacotes que foram instalados manualmente ou inicialmente com o Ubuntu. Queremos enviar isso para um arquivo que chamaremos de "package-list.txt". Use este comando para fazer isso:
apt-mark showmanual > package-list.txt
O comando que usaríamos para instalar pacotes a partir do arquivo "package_list.txt" está abaixo.
xargs < package_list.txt apt-get install -y
Utilitário para simplificar a reinstalação de pacotes de software após atualizar / reinstalar distribuições baseadas no Ubuntu.
[ Barra de lançamento | Aptik ]
Para obter informações sobre o Aptik, tente visitar sua página oficial e, para obter uma captura de tela, clique aqui ou veja o final desta seção.
A instalação do Aptik é simples. Siga esses passos:
Adicione o PPA com:
sudo add-apt-repository -y ppa:teejee2008/ppa
Atualize o apt com o comando abaixo.
sudo apt-get update
Instale o Aptik usando:
sudo apt-get install aptik
apt-mark showmanual
inclui Bash, Unity e Xorg, entre outros. Eles deveriam estar lá?
Acho interessante notar apt list --installed
ou dpkg-query --list
usar o arquivo chamado /var/lib/dpkg/status
behind, onde todas as informações sobre os pacotes são barba.
Então, se você gostaria de lidar apenas com a lista super extensa de pacotes cat /var/lib/dpkg/status
.
Nota: Não altere o /var/lib/dpkg/status
arquivo.
Além dos pacotes APT , hoje muitos pacotes da GUI são distribuídos como snaps .
Se o seu pacote não puder ser encontrado apt list --installed
, tente snap list
:
$ snap list
Name Version Rev Tracking Publisher Notes
gimp 2.10.10 165 stable snapcrafters -
gnome-calculator 3.32.1 406 stable/… canonical✓ -
keepassxc 2.4.1 267 stable keepassxreboot -
...
Também é uma boa ideia adicionar /snap/bin
ao PATH para que você possa iniciá-los a partir do terminal (feito automaticamente para usuários não root).
O pacote dctrl-tools
fornece a grep-status
ferramenta para obter a lista dos pacotes marcados como instalados no seu sistema:
sudo apt install dctrl-tools
Uso:
grep-status -FStatus -sPackage -n "install ok installed"
Vejo : man dctrl-tools
https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :
1. Liste 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
less
programa.sudo apt list --installed | less
3. Use o comando GREP
Você pode procurar um pacote específico através da saída usando o
grep
programa.sudo apt list --installed | grep -i apache
4. Liste 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 suporta padrões para combinar nomes e opções de
(--installed)
pacotes para listar pacotes instalados ,(--upgradeable)
pacotes atualizáveis ou todas as(--all-versions)
versões de pacotes disponíveis .5. Use o programa DPKG
Outra alternativa que você pode usar para listar os pacotes de software instalados no seu Ubuntu VPS é o
dpkg
comando.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. Obviamente, você pode usar o
grep
programa novamente para procurar 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 competição deste tutorial, você aprendeu com sucesso como listar pacotes instalados no Ubuntu.
Há muitas maneiras de fazer isso. Caso esteja usando o CentOS como eu, você pode usá-los: 1. yum list installed
2.rpm -qa