Blog Linux Avante

Como mostrar um histórico de pacotes instalados, atualizados ou removidos no Debian, Ubuntu ou Linux Mint [dpkg]

16 de janeiro de 2019

Este artigo explica como mostrar um histórico de pacotes recentemente instalados, atualizados ou removidos no Debian, Ubuntu ou Linux Mint, a partir da linha de comando.

Para ser capaz de obter uma lista de histórico completa de mudanças de pacote, incluindo pacotes DEB instalados, atualizados ou removidos, e mostrar a data em que uma ação específica foi realizada, no Debian ou Ubuntu, pode-se usar o dpkg (a infraestrutura de baixo nível para lidar com a instalação e remoção de pacotes de software Debian) e ler o seu log disponível em /var/log/dpkg.log. Você pode usar grep para analisar este arquivo a partir da linha de comando e exibir apenas pacotes instalados, atualizados ou removidos, dependendo do que você precisa.

Isso funciona para pacotes DEB instalados de qualquer forma, seja usando uma ferramenta gráfica como Synaptic, Gnome Software, Update Manager ou uma ferramenta de linha de comando como apt, apt-get, aptitude ou dpkg. Não funciona para outro pacotes, como Flatpak ou Snap, ou para software instalado a partir da fonte, e assim por diante.

Algumas formas alternativas de mostrar o histórico do gerenciador de pacotes no Debian, Ubuntu ou Linux Mint, não exibem um log completo. Por exemplo, Synaptic Package Manager (File -> History) só pode mostrar um histórico de pacotes de software instalados, atualizados ou removidos para os quais o próprio Synaptic foi usado para executar essas ações, mas você não verá nenhum pacote instalado, atualizado ou removido da linha de comando (usando apt, apt-get, dpkg), usando o Atualizador de Software ou o aplicativo de Software. Da mesma forma, o arquivo de log /var/log/apt/history.log APT lista apenas ações executadas usando apt/apt-get.

Mostrando um histórico de pacotes instalados recentemente, seu número de versão e a data/hora em que foram instalados no Debian, Ubuntu ou Linux Mint

Comandos para usar no terminal

grep "install " /var/log/dpkg.log

Isto é o que parece:

$ grep "install " /var/log/dpkg.log
2019-01-08 13:22:15 install automathemely:all <none> 1.3
2019-01-08 13:22:29 install python3-astral:all <none> 1.6.1-1
2019-01-08 13:22:29 install python3-tzlocal:all <none> 1.5.1-1
2019-01-08 13:22:29 install python3-schedule:all <none> 0.3.2-1

...

2019-01-09 17:19:49 install libwebkit2-sharp-4.0-cil:amd64 <none> 2.10.9+git20160917-1.1
2019-01-09 17:19:49 install sparkleshare:all <none> 3.28-1
2019-01-15 15:58:20 install ffsend:amd64 <none> 0.1.2

Mostrando uma lista de pacotes atualizados recentemente, a data/hora em que foram atualizados, bem como a versão antiga e nova do pacote, no Debian, Ubuntu ou Linux Mint

Comandos para usar no terminal

grep "upgrade " /var/log/dpkg.log

Saída de amostra:

$ grep "upgrade " /var/log/dpkg.log
2019-01-07 11:14:10 upgrade tzdata:all 2018g-0ubuntu0.18.10 2018i-0ubuntu0.18.10
2019-01-07 11:35:14 upgrade davinci-resolve:amd64 15.2-2 15.2.2-1
2019-01-07 12:31:04 upgrade chromium-chromedriver:amd64 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1
2019-01-07 12:31:04 upgrade chromium-browser-l10n:all 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1
2019-01-07 12:31:08 upgrade chromium-browser:amd64 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1
2019-01-07 12:31:12 upgrade chromium-codecs-ffmpeg-extra:amd64 72.0.3626.17-0ubuntu1~ppa1~18.10.1 72.0.3626.28-0ubuntu1~ppa1~18.10.1

...

2019-01-15 15:51:31 upgrade vlc-plugin-bittorrent:amd64 2.5-1~cosmic 2.6-1~cosmic
2019-01-15 17:30:44 upgrade virtualbox-6.0:amd64 6.0.0-127566~Ubuntu~bionic 6.0.2-128162~Ubuntu~bionic
2019-01-15 17:34:33 upgrade libarchive13:amd64 3.2.2-5 3.2.2-5ubuntu0.1
2019-01-16 12:32:43 upgrade oracle-java11-installer:amd64 11.0.1-2~linuxuprising1 11.0.2-1~linuxuprising0
2019-01-16 12:42:20 upgrade nvidiux:amd64 2.0.4 2.1
2019-01-16 13:41:05 upgrade plata-theme:all 0.4.1-0ubuntu1~cosmic1 0.5.4-0ubuntu1~cosmic1

Mostra um histórico de pacotes removidos recentemente e a data/hora em que foram removidos, no Debian, Ubuntu ou Linux Mint

Comandos para usar no terminal

grep "remove " /var/log/dpkg.log

Exemplo:

$ grep "remove " /var/log/dpkg.log
2019-01-10 12:30:55 remove automathemely:all 1.3 <none>
2019-01-11 13:16:38 remove persepolis:all 3.1.0.0 <none>
2019-01-11 13:38:52 remove python3-astral:all 1.6.1-1 <none>
2019-01-11 13:38:52 remove python3-psutil:amd64 5.4.6-1build1 <none>
2019-01-11 13:38:52 remove python3-pyxattr:amd64 0.6.0-2build3 <none>
2019-01-11 13:38:52 remove python3-schedule:all 0.3.2-1 <none>
2019-01-11 13:38:53 remove python3-tzlocal:all 1.5.1-1 <none>

/var/log/dpkg.log contém o histórico de instalação, atualização e remoção do pacote para o mês atual. Para o mês anterior, leia o arquivo de log /var/log/dpkg.log.1. Por exemplo, para ver o histórico de instalação do pacote do mês anterior, use:

Comandos para usar no terminal

grep "install " /var/log/dpkg.log.1

Quer voltar ainda mais na história do dpkg? Use zgrep em vez de grep e leia /var/log/dpkg.log.2.gz, /var/log/dpkg.log.3.gz, /var/log/dpkg.log.4.gz e assim por diante, que remontam a dois, três e quatro meses, respectivamente.

Exemplo:

Comandos para usar no terminal

zgrep "upgrade " /var/log/dpkg.log.2.gz

Isso ocorre porque por padrão no Debian, Ubuntu e Linux Mint, o log do dpkg é configurado para virar uma vez por mês, mantendo 12 logs antigos (portanto, por 12 meses) e compactar os arquivos girados usando gzip (.gz). Você pode verificar a configuração Debian/Ubuntu Logrotate para dpkg usando cat /etc/logrotate.d/dpkg.

Da mesma série:

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.