Comment puis-je générer une liste de tous les packages installés avec la date d'installation et des informations supplémentaires?
Ouvrez le terminal et lancez:
zgrep 'install ' /var/log/dpkg.log* | sort | cut -f1,2,4 -d' '
Exemple de sortie:
2018-09-02 16:10:59 python3-psutil:AMD64
2018-09-02 16:11:00 menulibre:all
2018-09-07 14:58:58 indicator-stickynotes:all
2018-09-08 00:17:41 libdumbnet1:AMD64
2018-09-08 00:17:41 libxmlsec1-openssl:AMD64
...
Puisque cette commande va chercher dans tous les journaux, la sortie peut être très grosse. Donc, il est préférable de l'enregistrer dans un fichier en utilisant
zgrep 'install ' /var/log/dpkg.log* | sort | cut -f1,2,4 -d' ' > test.txt
Voici un script qui utilise les fichiers /var/log/dpkg.log*
pour construire une liste des packages actuellement installés ainsi que la date d'installation la plus récente.
#!/bin/bash
LOGDIR=$(mktemp -d)
cd $LOGDIR
cp /var/log/dpkg.log* .
# grep the relevant lines from the log files
for file in dpkg.log*
do
zgrep ' install ' "$file" > ins.${file%.gz}
done
# Merge all the install lines chronologically into a single file
cat $(ls -rv ins.*) > install.log
# Construct a list of all installed packages in the format packagename:Arch
dpkg -l | grep '^.i' | tr -s ' ' | cut -d' ' -f2,4 | tr ' ' : | cut -d: -f1,2 > installed.list
OUTFILE=$(mktemp -p .)
for package in $(< installed.list)
do
# Get only the most recent installation of the respective package
grep " $package" install.log | tail -n1 >> "$OUTFILE"
done
sort "$OUTFILE" > newest-installs.log
echo "List of installed packages written to ${LOGDIR}/newest-installs.log"
Utilisation
tail -f /var/log/dpkg.log
ou
less /var/log/dpkg.log
ou
grep " install " /var/log/dpkg.log*
zgrep " install " /var/log/dpkg.log.*.gz
peut utiliser grep pour un paquet particulier (exemple)
grep -E 'install .*<package-name>' /var/log/dpkg.log*