55 votes

Comment voir les paquets installés à une date donnée avec 'aptitude' ?

Quelqu'un sait-il s'il existe un moyen facile de trouver une liste des paquets installés, triés par date, lorsque l'on utilise le logiciel aptitude (ou apt-get ) ?

J'ai installé un tas de paquets pour essayer quelque chose de nouveau, mais ça n'a pas marché. J'aimerais supprimer tous ces paquets pour récupérer de l'espace disque.

J'ai essayé de regarder simplement la liste des fichiers .deb téléchargés, mais cela me semble être une manière plutôt arriérée de procéder (bien que cela ait fonctionné).

43voto

Malheureusement, dpkg (le gestionnaire de paquets sur lequel fonctionne aptitude) n'enregistre pas spécifiquement la date d'installation des paquets, bien que l'on envisage de l'ajouter. Cependant, la date d'installation peut être trouvée en regardant l'horodatage des fichiers écrits dans le répertoire /var/lib/dpkg/info .

21voto

jeremiah Points 400

Par défaut, aptitude écrit dans un fichier journal /var/log/aptitude . Il produit un résultat comme celui-ci :

===============================================================================

Aptitude 0.8.12: log report
Sun, Oct  1 2021 23:59:59 +1300

  IMPORTANT: this log only lists intended actions; actions which fail
  due to dpkg problems may not be completed.

Will install 6 packages, and remove 0 packages.
31.3 MB of disk space will be used
========================================
[UPGRADE] libc-dev-bin:amd64 2.31-0ubuntu9 -> 2.31-0ubuntu9.2
[UPGRADE] libc6:amd64 2.31-0ubuntu9 -> 2.31-0ubuntu9.2
[UPGRADE] libc6:i386 2.31-0ubuntu9 -> 2.31-0ubuntu9.2
[UPGRADE] libc6-dbg:amd64 2.31-0ubuntu9 -> 2.31-0ubuntu9.2
[UPGRADE] libc6-dev:amd64 2.31-0ubuntu9 -> 2.31-0ubuntu9.2
[UPGRADE] libc6-i386:amd64 2.31-0ubuntu9 -> 2.31-0ubuntu9.2
========================================

Log complete.
===============================================================================

Cela montre la date exacte et les paquets qu'aptitude a installés. Pour configurer ceci (dans /etc/apt/apt.conf ou dans un fichier séparé dans /etc/apt/apt.conf.d/ ), suivez les Référence du fichier de configuration dans le manuel d'aptitude (également disponible à partir de "Aide > Manuel de l'utilisateur" dans le menu) :

Option:Aptitude::Log

Default:/var/log/aptitude

Description: If this is set to a nonempty string, aptitude will log the package
installations, removals, and upgrades that it performs. If the value of
Aptitude::Log begins with a pipe character (ie, ``|''), the remainder of its
value is used as the name of a command into which the log will be piped: for
instance, |mail -s 'Aptitude install run' root will cause the log to be emailed
to root. To log to multiple files or commands, you may set this option to a list
of log targets.

16voto

jmarceli Points 386

Il existe un simple moyen de voir la date d'installation de tous les paquets. Il suffit d'exécuter :

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

Vous obtiendrez ainsi une liste de tous les paquets installés avec la date et l'heure exactes.

Merci pour les commentaires qui m'ont conduit à cette solution.

12voto

XTL Points 690

J'ai trouvé celui-ci ici sur le web. Il crée un historique de dpkg à partir du fichier journal de dpkg.

Cela semble très simple.

function apt-history(){
      case "$1" in
        install)
              cat /var/log/dpkg.log | grep 'install '
              ;;
        upgrade|remove)
              cat /var/log/dpkg.log | grep $1
              ;;
        rollback)
              cat /var/log/dpkg.log | grep upgrade | \
                  grep "$2" -A10000000 | \
                  grep "$3" -B10000000 | \
                  awk '{print $4"="$5}'
              ;;
        *)
              cat /var/log/dpkg.log
              ;;
      esac
}

Fuente

EDIT

J'ai essayé ce script sur le serveur Ubuntu 8.10 et il fonctionne très bien. Pourriez-vous fournir quelques informations, comment vous avez résolu votre problème ?

5voto

a20 Points 161
  • Utiliser les logs de dpkg

    locate dpkg.log | xargs cat {} | grep " install "
  • OU si vous n'avez pas locate

    find /var/log/ -name 'dpkg.log' | xargs cat {} | grep " install "
  • Utilice sort pour assurer une commande appropriée en fonction du temps

    locate dpkg.log | xargs cat {} | grep " install " | sort
  • Utilice tac (inversé cat )*, Kopf e.g pour obtenir les 4 dernières entrées

    locate dpkg.log | xargs cat {} | grep " install " | sort | tac | head -n4

e.g Pour la dernière commande, j'obtiens :

2014-10-08 18:56:12 install xorg-server-source:all <none> 2:1.16.1-1
2014-10-08 18:49:34 install libelementary-data:all <none> 0.7.0.55225-1
2014-10-08 18:46:57 install e17:i386 <none> 0.17.6-1
2014-10-08 18:46:56 install libedje-bin:i386 <none> 1.8.6-2.1+b1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X