Comment supprimer toutes les mises à jour installées après une date spécifique?

12

J'ai autorisé le gestionnaire de mise à jour à installer 200 Mib de mises à jour et je pense que ces mises à jour exécutent mon pilote graphique dans un problème. J'ai donc besoin d'un moyen de supprimer les mises à jour installées depuis le 30 mai 12 par exemple (ou toute autre date). Si je dois les supprimer manuellement (dans le cas de les désinstaller un par un), vous êtes prié de me donner les instructions pour le faire.

Créatif
la source

Réponses:

8

Il existe une approche alternative en ligne de commande pour obtenir l'historique d'installation.

Le gestionnaire de paquets aptsemble tout connecter /var/log/apt/history.loget /var/log/apt/term.log, y compris tout séparer par des horodatages. Les deux contiennent des informations similaires et utilisables mais term.logsont à la fois plus verbeuses et n'indiquent pas explicitement ce qui a initié l'opération.

Journal d'historique

/var/log/apt/history.logstocke un résumé concis de chaque aptexécution. Voici un extrait de moi pour une installation manuelle:

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

Le Commandline:champ indique ce qui a déclenché l'exécution, et dans le cas des installations effectuées par le gestionnaire de mise à jour, il devrait ressembler à quelque chose comme:

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

... et voici votre liste de packages, triés par date, méthode et action (installer / mettre à niveau / supprimer). Notez que si vous souhaitez renvoyer ces packages à apt-get remove ...:

  • Comme mentionné , cela supprime complètement les packages plutôt que de les annuler. Les informations contenues dans les journaux pourraient certainement être utilisées pour examiner les packages mis à niveau, mais les restaurer est une autre question.
  • Vous devrez supprimer les parenthèses, leur contenu et le séparateur de virgules de la liste via votre méthode préférée de manipulation de texte (par exemple sed, vimetc.). Donc, si je voulais supprimer les packages de l'extrait ci-dessus, je peux utiliser la ligne relativement directement:

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

Journal du terminal

Généralement, il /var/log/apt/term.logest moins structuré mais, pour être complet, vous pouvez obtenir les mêmes informations. La sortie du terminal est à nouveau délimitée par des horodatages et les installations de packages peuvent être obtenues à partir de lignes de la forme suivante:

Selecting previously unselected package nautilus-dropbox.

Voici une façon d'imprimer une liste des packages installés sur le terminal pour l'ensemble du journal:

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

Cela peut être adapté ou étendu pour obtenir des installations dans une plage de dates.

Tête électrique
la source
1
Si cela peut rendre la vie de quelqu'un plus facile, voici l'extrait sed je supprimer les parens et les virgules du package de la liste /var/log/apt/history.log afin que je puisse les nourrir à apt-get remove: sed 's/ ([^)]*)//g' | sed 's/,//g').
Apteryx
4

Remarque: Contrairement à Windows, la suppression d'une mise à jour dans Ubuntu désinstallera normalement ce package / programme et ne le rétablira pas (ou rétrogradera) simplement à la version précédente.

Vous pouvez ouvrir Ubuntu Software Center et cliquer sur l'historique

entrez la description de l'image ici

Une fois que vous avez fait cela, cliquez sur les mises à jour, et cela vous montrera toutes les mises à jour installées sur votre système. Une fois que vous avez trouvé les mises à jour que vous devez supprimer, vous devez le faire manuellement.

entrez la description de l'image ici

Pour supprimer, vous pouvez utiliser Synaptic Package Manager. Si vous ne l'avez pas installé, vous pouvez l'installer à partir de

Mitch
la source
Merci. Cela implique-t-il des commandes sur le terminal pour le faire?
créatif