Est-il possible d'obtenir une liste des derniers packages installés?


157

Est-il possible d'obtenir une liste des derniers paquets installés par apt-get?



1
Maintenant, si seulement quelqu'un me disait comment lister les paquets installés manuellement que je n'ai pas encore supprimés. Soupir, Linux.
Aleksandr Dubinsky

1
@ AleksandrDubinsky apt-mark showmanual | lessne le fait pas?
GKFX

@GKFX je voulais dire dans le contexte des paquets récemment installés.
Aleksandr Dubinsky

@AleksandrDubinsky Vous auriez à utiliser comm -12 a bavec aune copie triée de apt-mark showmanualet bune liste triée d'une des réponses ci - dessous.
GKFX

Réponses:


180

Commande pour répertorier les packages récemment installés qui ont été installés via n’importe quelle méthode ( apt-getSoftware Center, etc.):

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

Exemple de sortie:

2010-12-08 15:48:14 install python-testtools <none> 0.9.2-1
2010-12-08 15:48:16 install quickly-widgets <none> 10.09
2010-12-08 22:21:31 install libobasis3.3-sdk <none> 3.3.0-17
2010-12-09 12:00:24 install mc <none> 3:4.7.0.6-1
2010-12-09 23:32:06 install oggconvert <none> 0.3.3-1ubuntu1
2010-12-09 23:34:50 install mpg123 <none> 1.12.1-3ubuntu1
2010-12-09 23:34:52 install dir2ogg <none> 0.11.8-1
2010-12-09 23:34:53 install faad <none> 2.7-4
2010-12-09 23:34:54 install wavpack <none> 4.60.1-1
2010-12-10 11:53:00 install playonlinux <none> 3.8.6

Vous pouvez exécuter cette commande pour répertorier uniquement les noms de packages récemment installés,

awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log

Commande pour lister l'historique de apt-get(NOTE: ceci ne liste pas les dépendances installées, il liste simplement les apt-getcommandes précédentes qui ont été exécutées):

grep " install " /var/log/apt/history.log

Exemple de sortie:

Commandline: apt-get install libindicate-doc
Commandline: apt-get install googlecl
Commandline: apt-get --reinstall install ttf-mscorefonts-installer
Commandline: apt-get install valac libvala-0.10-dev
Commandline: apt-get install libgtksourceview-dev
Commandline: apt-get install python-sphinx
Commandline: apt-get install python-epydoc
Commandline: apt-get install quickly-widgets
Commandline: apt-get install libreoffice3* libobasis3.3*
Commandline: apt-get install mc

le problème avec synaptic est qu'il ne montre pas ce que vous faites avec aptitude, apt-get et dpkg, pour cette raison +1 pour cette option
hhlp

Cette commande ne montrera pas les mises à jour. Utilisez le centre de logiciel pour tout voir.
HDave

1
Il serait peut-être préférable de sauvegarder un fichier texte comme celui-cicat /var/log/apt/history.log | grep "\ install\ " > install.log
CrandellWS

4
grep " install " /var/log/dpkg.logsuffira. Il n'y a pas besoin d'utiliser cat. Voir aussi ceci .
augurar

1
Notez que cela ne semble que pour trouver des paquets qui ont été récemment installés. Paquets pour lesquels une nouvelle version a été installée apparaissent comme upgradedansdpkg.log
Andre Holzner

14

Le centre de logiciels Ubuntu affiche l'historique complet de tous les paquets installés / mis à niveau / supprimés. Cliquez simplement sur "Historique" en bas de la liste à gauche.


4
Ce bouton d'historique est maintenant en haut de l'interface graphique et permet d'afficher les packages et les mises à jour installés. Cela devrait être la réponse acceptée à la question car c'est la seule réponse qui fonctionne pour les mises à jour.
HDave

Cette question ne spécifie pas un environnement de bureau (interface graphique), mais la réponse acceptée est valide dans les scénarios avec ou sans interface graphique.
msanford

@HDave Certainement pas vrai, dpkg.logenregistre les mises à jour.
GKFX

10

Pour voir aussi les anciens paquets triés par date d’installation:

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

Et pour les paquets installés il y a très longtemps:

gunzip -c `ls -tr /var/log/dpkg.log.*.gz` | grep " install "

J'ai trouvé un paquetage installé il y a 2 jours dans /var/log/dpkg.log, mais pas dans /var/log/apt/history.log. Je ne sais toujours pas pourquoi ...
Samuel Li

5

L'astuce suivante répond à la demande d'Aleksandr Dubinsky de limiter cela aux paquets installés manuellement:

comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
  • comm -12 liste les lignes communes à deux fichiers triés.
  • <(command)se développe au nom d'un fichier contenant la sortie de command.
  • apt-mark showmanualliste les paquets installés manuellement; c'est à dire. ceux qui ne devraient jamais être supprimés automatiquement.
  • grep " install " /var/log/dpkg.log est tiré de la réponse acceptée.

Une alternative, montrant plus d'informations, dans un ordre chronologique, et accédant à tous les journaux disponibles, est:

zcat -f /var/log/dpkg.log* | grep " install " | sort > /tmp/dpkg.log
grep -F "`comm -12 <(apt-mark showmanual | sort) <(cat /tmp/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)`" /tmp/dpkg.log | grep \<none\>

grep \<none\>limite les résultats aux nouvelles installations. Vous pouvez, par exemple, utiliser grep pour limiter la recherche à une période de trois mois en ajoutant grep 2016-0[567]au premier pipeline; c'est très flexible.


Cela se rapproche. Ce qui pourrait être amélioré: 1) montre les paquetages dans l’ordre chronologique, 2) montre plus de détails comme date / heure d’installation, la version, peut-être même la taille 3) montre tous les paquets installés depuis l’installation du système d’exploitation.
Aleksandr Dubinsky

Incroyable! Est-ce que cela vous dérange si je nettoie votre réponse pour être plus concis avec plus d'explications sur chaque commande?
Aleksandr Dubinsky

@AleksandrDubinsky Merci pour cette modification; J'ai corrigé la description afin qu'elle corresponde aux modifications que vous avez apportées.
GKFX

Cela vous dérange-t-il si je supprime le bruit "demande suivante d'Aleksandr Dubinsky", la première commande qui ne sert à rien, met un bon titre, place la commande principale au premier plan, ajoute un exemple de sortie et tente de décrire toutes les commandes impliqué?
Aleksandr Dubinsky

1
Il y a un bogue dans la dernière commande, car grep -Ftrouver des correspondances partielles. Par exemple, si python3est installé, il correspondra également à toutes les bibliothèques python3 ( python3-click-package), y compris celles qui ne sont plus installées. De plus, cela grep -Fwn’aide pas car -c’est une limite de mots.
Aleksandr Dubinsky

5

Tous sur une seule ligne; pour commande

Sélectionnez et imprimez uniquement les noms de paquet récemment installés, sur une seule ligne.

Pour ce faire, remplacez la réponse la plus votée par:

cat /var/log/dpkg.log |awk '/ install / {printf "%s ",$4}'

Cela donne une seule ligne de noms de paquets. Une telle ligne peut facilement être ajoutée à une sudo apt-get purgecommande.

Exemple de sortie

libgnome-media-profiles-3.0-0 gstreamer0.10-gconf gnome-media gnome-menus librest-0.7-0 libgoa-1.0-common libgoa-1.0-0 libwacom-common libwacom2 ubuntu-docs apg libgnome-control-center1 libgnomekbd-common libgnomekbd7 gnome-control-center-data gnome-icon-theme-symbolic gnome-settings-daemon ubuntu-system-service gnome-control-center gnome-online-accounts gnome-session-bin indicator-power mousetweaks

Liste des paquets les uns en dessous des autres

A la demande générale, voici une version légèrement adaptée pour lister les paquets les uns en dessous des autres:

cat /var/log/dpkg.log |awk '/ install / {printf "%s\n",$4}'

Ne pas analyser le résultat de la catcommande. Et que dire de ça awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log?
Avinash Raj

@AvinashRaj Votre awkcommande imprime les paquets les uns en dessous des autres; les miens les uns après les autres. C'est pourquoi un exemple de sortie peut être utile de temps en temps.
Serge Stroobandt

2

Il y a un paquet appelé wajig Check it out pour la ligne de commande, c'est la première chose que j'installe maintenant. Comme avec aptitude, sauf que cela fonctionne comme si vous attendiez un répartiteur de commandes. Alors vraiment, ce n'est pas comme une aptitude. Les commandes ci-dessous ne sont qu'un petit sous-ensemble.

wajig help
Common JIG commands:

 update         Update the list of downloadable packages

 new            List packages that became available since last update
 newupgrades    List packages newly available for upgrading

 install        Install (or upgrade) one or more packages or .deb files
 remove         Remove one or more packages (see also purge)

 toupgrade      List packages with newer versions available for upgrading
 upgrade        Upgrade all of the installed packages or just those listed

 listfiles      List the files that are supplied by the named package
 listnames      List all known packages or those containing supplied string
 whatis         For each package named obtain a one line description
 whichpkg       Find the package that supplies the given command or file

Run 'wajig -v commands' for a complete list of commands.

5
Je ne suis pas sûr de savoir comment wajigaider à la liste des derniers paquets. Je ne vois pas de commande pour cela après un rapide aperçu des commandes. Savez-vous ce que la commande est?
Ehtesh Choudhury

1

En plus de la réponse de DoR, pour ceux qui préfèrent une interface graphique, il existe un élément de menu Fichier -> Historique dans Synaptic.


2
Et comme le fait remarquer rafalcieslak , cette fonction est également disponible dans le Centre logiciel.
belacqua

3
L’histoire de Synaptic ne montre que ce que vous avez installé avec Synaptic… totalement inutile.
HDave

1

Voici un shell pour lister les fichiers installés par dpkg. (qui devrait inclure tous les paquets installés apt / aptitude / software center / synaptic)

grep -A 1 "Package: " /var/lib/dpkg/status | \
grep -B 1 -Ee "ok installed|half-installed|unpacked|half-configured|config-files" -Ee "^Essential:yes" | \
grep "Package:" | cut -d\  -f2

Cela n'inclut pas les informations sur l'heure / la date d'installation. Mais cela peut être utile pour déterminer les différences entre les paquets installés de os install à current.


-1

Le problème avec l'affichage de l'historique d'installation dans le Centre logiciel ou Synaptic est qu'il est difficile de copier / coller le contenu dans un courrier électronique (par exemple, lors d'une conversation avec le support technique!). L'alternative consiste à afficher le contenu des fichiers journaux en /var/log/apttant que root.


2
Juste pour clarifier, pour afficher simplement le contenu /var/log/apt, vous n'avez PAS besoin d'être root, ni avec le privilège d'un administrateur.
Samuel Li
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.