Como posso remover todas as atualizações instaladas após uma data específica?

11

Eu permiti que o gerenciador de atualização instalasse 200 Mib de atualizações, e acho que essas atualizações executam o driver gráfico como um problema. Então, eu preciso de uma maneira de remover as atualizações que foram instaladas desde 30 de maio de 12, por exemplo (ou qualquer outra data). Se eu tiver que removê-los manualmente (no caso de desinstalá-los um por um), você é gentilmente solicitado a me dar as instruções de como fazer isso.

    
por creative 18.06.2012 / 21:57

2 respostas

7

Existe uma alternativa, abordagem de linha de comando para obter o histórico de instalação.

O gerenciador de pacotes apt parece registrar tudo em /var/log/apt/history.log e /var/log/apt/term.log , incluindo a separação de todos por data e hora. Ambos contêm informações utilizáveis semelhantes, mas term.log é mais detalhado e não indica explicitamente o que iniciou a operação.

Log do histórico

/var/log/apt/history.log armazena um resumo conciso de cada apt run. 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 campo Commandline: indica o que desencadeou a execução e, no caso de instalações feitas pelo gerenciador de atualizações, deve ser parecido com:

Commandline: aptdaemon role='role-commit-packages' sender=':1.131'

... e sua lista de pacotes, ordenada por data, método e ação (instalar / atualizar / remover). Observe que, se você quiser 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 os pacotes atualizados, embora revertê-los seja outra questão.
  • Você precisará remover os parênteses, seu conteúdo e o separador de vírgulas da lista por meio de seu método preferido de manipulação de texto (por exemplo, sed , vim etc.). Então, se eu quiser remover os pacotes no snippet acima, posso usar a linha de maneira relativamente direta:

    sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
    

Log de terminal

Em geral, /var/log/apt/term.log é menos convenientemente estruturado, mas, para fins de integridade, você pode obter as mesmas informações. A saída do terminal é delimitada por carimbos de data e hora novamente, e as instalações de pacotes podem ser obtidas de linhas da seguinte forma:

Selecting previously unselected package nautilus-dropbox.

O seguinte é uma maneira de imprimir uma lista de pacotes instalados no terminal para todo o log:

$ awk '/^Selecting/ {gsub(/\./,""); print }' /var/log/apt/term.log

Isso pode ser adaptado ou estendido para obter instalações em um intervalo de datas.

    
por Electric Head 19.09.2014 / 13:54
4
  

Observação: Diferentemente do Windows, remover uma atualização no Ubuntu normalmente desinstala esse pacote / programa e não simplesmente reverter (ou degradar) para a versão anterior.

Você pode abrir o Ubuntu Software Center e clicar no histórico

Depois disso, clique em atualizações e isso mostrará todas as atualizações instaladas em seu sistema. Depois de descobrir as atualizações que você precisa remover, é necessário fazer isso manualmente.

Para remover, você pode usar o Gerenciador de Pacotes Synaptic. Se você não tem instalado, você pode instalá-lo a partir de

    
por Mitch 18.06.2012 / 22:13