Comentários
Resposta
Você pode listar o pacote instalado usando apt
usando o seguinte comando:
apt --installed list
Edite
Use o seguinte comando para listar o pacote instalado por meio de apt-get
:
zcat /var/log/apt/history.log.*.gz | cat - /var/log/apt/history.log | grep -Po "^Commandline: apt-get install (?!.*--reinstall)\K.*"
Comentários
- Como você afirmou, isso lista todos os pacotes instalados. Quero pacotes que instalei manualmente usando os comandos
apt-get
. - @ user598200 – Considere aceitar esta resposta. 🙂
- Com base em esta resposta do askubuntu , chego a
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null | egrep '^(Commandline: apt(-get)? install)' | grep -v aptdaemon | egrep '^Commandline:'
-
zgrep -hPo '^Commandline: apt-get install (?!.*--reinstall)\K.*' /var/log/apt/history.log{.*.gz,}
produz a mesma saída sem os desnecessárioszcat
ecat
. se você não ' se preocupar com a ordem exata dos nomes dos pacotes na saída,/var/log/apt/history.log*
servirá para o argumento do nome do arquivo.
Resposta
zgrep -h " install " /var/log/dpkg.log* | sort | awk "{print $4}"
Isso lhe dará uma lista de pacotes que têm foram instalados, na ordem em que foram instalados.
De acordo com meu comentário, apenas os arquivos /var/log/dpkg.log*
dos últimos 12 meses são mantidos por padrão. Para mudar isso, edite /etc/logrotate.d/dpkg
. Por exemplo, altere rotate 12
para rotate 1200
para manter os últimos 1200 meses (100 anos) valendo – efetivamente para sempre, nunca exclua os registros antigos.
A propósito, se você quiser ver quando os pacotes foram atualizados, altere install
para upgrade
. por exemplo,
zgrep -h " upgrade " /var/log/dpkg.log* | sort
mesmo para remove
e purge
.
Resposta
Se você deseja exibir apenas uma lista com os pacotes que possui instalado manualmente , você pode executar:
apt --installed list | grep -v automatic
para não listar os pacotes sinalizados como instalados automaticamente
-v, --invert-match Invert the sense of matching, to select non-matching lines.
Outra opção que não excluirá erroneamente um pacote infeliz com " automático " em seu nome está:
apt-mark showmanual
Comentários
- Curto e agradável, e classificado em ordem alfabética.
- Se por acaso um nome de pacote contiver " automático ", ele será filtrado por grep.
Resposta
Isso se baseia em aptitude
, mas o seguinte fornecerá uma lista de pa ckages que são instalados manualmente, ou seja, não são instalados apenas por causa da dependência:
aptitude search -F %p "~i!~M"
Dependendo de como a imagem está configurada, provavelmente também incluirá alguns instalados pelo sistema básico. Você pode se livrar de uma parte razoável deles alternando-os para instalação automática e, em seguida, basta marcar como manuais os poucos que deseja manter, apesar de não ter nada dependendo deles. Isso é fácil de fazer com M dentro de aptitude
em um sistema vazio.
Resposta
Use dpkg
para listar todos os pacotes instalados em um sistema: dpkg --get-selections
Para listar todos os pacotes instalados usando apt-get
veja /var/log/apt/history.log
. Este registro também contém pacotes que você removeu. Você pode grep
para as linhas que começam com Install:
.
Comentários
- Como você afirmou, isso lista todos os pacotes instalados. Quero pacotes que instalei manualmente usando os comandos
apt-get
. - @ user598200 Ah. Obrigado por esclarecer. Veja minha resposta editada. Não tenho certeza se
apt-get
tem essa funcionalidade. Mas sempre que você instala algo, ele é anexado ao arquivo de log que mencionei na resposta. - Obrigado.Posso passar por todos os
/var/log/apt/history.log*
arquivos e imprimir os nomes dos pacotes em um único acesso? - @ user598200 Você pode usar
grep
.grep "Install: package" /var/log/apt/history.log*
Resposta
Ubuntu 14.04 e superior usam apt list --installed
para versões mais antigas, use dpkg --get-selections | grep -v deinstall
Resposta
Um pouco mais curto e classificado
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" | cut -f4- -d" " | tr " " $"\n" | sort -u
Comentários
- Alguma explicação do motivo disso melhor do que a resposta que @ GAD3R deu seria útil.
- Em primeiro lugar, é ' s mais curto, em segundo lugar, a saída é classificada
- A idéia em U & L é que você melhore sua resposta (ou pergunta, caso tenha postado uma) editando a postagem, em vez de ocultar informações valiosas nos comentários. Como eu cortaria e colaria o comando 26 bytes a menos não é tão interessante, mas o fato de sua saída ser classificada realmente pertence à própria resposta. Se tal melhoria foi uma reação a um pedido de esclarecimento, um simples " atualizou minha resposta " como comentário fará, o comentador ( neste caso, eu) serei notificado desse comentário. Acho que a concisão também é a causa de alguém rebaixar sua resposta.
- Se você quiser jogar golfe, tente
zgrep -Pho '(?<=apt-get install ).*' /var/log/apt/history.log.*.gz | tr ' ' $'\n' | sort -u
.
history.log
arquivos em/var/log/apt/
. É ' importante observar que, por padrão, o logrotate é configurado para manter apenas os últimos 12 meses desses arquivos. O mesmo é verdadeiro parathe /dpkg.log
arquivos em/var/log
(que fornecem informações semelhantes em um formato (IMO) mais facilmente analisado). Edite/etc/logrotate.d/{apt,dpkg}
para alterar a política de retenção do seu sistema.