Existe uma abordagem alternativa de linha de comando para obter o histórico de instalação.
O gerenciador de pacotes apt
parece fazer logon de tudo /var/log/apt/history.log
e /var/log/apt/term.log
, inclusive separando tudo por registros de dados. Ambos contêm informações semelhantes e utilizáveis, mas term.log
são mais detalhados e não indicam explicitamente o que iniciou a operação.
Log de histórico
/var/log/apt/history.log
armazena um resumo conciso de cada apt
execução. Aqui está um trecho meu para uma instalação manual:
Start-Date: 2014-08-22 17:17:52
Commandline: apt-get install nautilus-dropbox
Install: nautilus-dropbox:amd64 (1.6.1-1), python-gpgme:amd64 (0.3-0ubuntu3, automatic)
End-Date: 2014-08-22 17:19:13
O Commandline:
campo indica o que desencadeou a execução e, no caso de instalações feitas pelo gerenciador de atualizações, deve ser algo como:
Commandline: aptdaemon role='role-commit-packages' sender=':1.131'
... e sua lista de pacotes, classificados por data, método e ação (instalar / atualizar / remover). Observe que se você deseja passar esses pacotes de volta para apt-get remove ...
:
- Como mencionado , isso remove completamente os pacotes, em vez de revertê-los. As informações nos logs certamente poderiam ser usadas para examinar pacotes atualizados, embora revertê-los seja outra questão.
Você precisará remover os parênteses, o conteúdo e o separador de vírgulas da lista por meio do seu método preferido de manipulação de texto (por exemplo sed
, vim
etc.). Portanto, se eu quiser remover os pacotes no snippet acima, posso usar a linha de forma relativamente direta:
sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
Log do terminal
Geralmente /var/log/apt/term.log
é menos convenientemente estruturado, mas, para fins de completude, você pode obter as mesmas informações. A saída do terminal é delimitada por timestamps novamente e as instalações de pacotes podem ser obtidas a partir de linhas do seguinte formato:
Selecting previously unselected package nautilus-dropbox.
A seguir, é uma maneira de imprimir uma lista de pacotes instalados no terminal para todo o log:
$ awk '/^Selecting/ {gsub(/\./,""); print $5}' /var/log/apt/term.log
Isso pode ser adaptado ou estendido para obter instalações em um período.
apt-get remove
:sed 's/ ([^)]*)//g' | sed 's/,//g')
.