Réponses:
Toutes les actions avec apt (apt-get) sont enregistrées. Ces fichiers sont disponibles dans / var / log / apt /. Pour afficher l'historique le plus récent, exécutez:
less /var/log/apt/history.log
Ces journaux sont soumis à une rotation (chaque mois, je suppose), les anciens fichiers seront suffixés avec un numéro et compressés. Donc, pour afficher le prochain historique, utilisez:
zless /var/log/apt/history.log.1.gz
Pour afficher les journaux disponibles:
ls -la /var/log/apt/
Vous pouvez également créer une courte commande pour afficher le contenu intéressant.
Ajoutez cette fonction personnalisée à votre ~/.bashrc
:
### pars for fun: install | remove | rollback
function apt-history(){
case "$1" in
install)
grep 'install ' /var/log/dpkg.log
;;
upgrade|remove)
grep $1 /var/log/dpkg.log
;;
rollback)
grep upgrade /var/log/dpkg.log | \
grep "$2" -A10000000 | \
grep "$3" -B10000000 | \
awk '{print $4"="$5}'
;;
*)
cat /var/log/dpkg.log
;;
esac
}
Et appelez-le dans un terminal comme celui-ci:
kreso@h17:~$ apt-history install
2013-08-06 14:42:36 install gir1.2-nautilus-3.0:amd64 <none> 1:3.8.2-0ubuntu1~ubuntu13.04.1
2013-08-06 14:42:36 install python-nautilus:amd64 <none> 1.1-3ubuntu1
2013-08-06 14:42:37 install insync-nautilus:all <none> 1.0.20
2013-08-07 14:41:37 install powertop:amd64 <none> 2.1-0ubuntu1
2013-08-07 18:44:10 install libdiscid0:amd64 <none> 0.2.2-3build1
2013-08-07 18:44:11 install sound-juicer:amd64 <none> 3.5.0-0ubuntu1
Tiré d' ici
zgrep ... /var/log/dpkg.log*
- sort les entrées des archives aussi.
Vous pouvez également utiliser la commande suivante pour répertorier les packages récemment installés
grep "\ install\ " /var/log/dpkg.log
grep "\ install\ " /var/log/apt/history.log
au cas où vous auriez besoin de copier et coller une liste dans apt-get
Si vous voulez que les paquets qui ont été installés et non désinstallés par la suite, essayez ceci:
comm -23 <(grep "apt-get install" /var/log/apt/history.log | sed 's/.* //' | sort) \
<(grep "apt-get remove" /var/log/apt/history.log | sed 's/.* //' | sort)
C’est les installations moins toutes les correspondances supprimées.
Références:
sort
, utilisez sort -u
dans les deux cas pour éviter les doublons, tels que package oracle-java8-installer
ou beaucoup d’autres.
Voici comment vous le faites réellement, dites package mutter:
_P=mutter &&
(cat /var/log/dpkg.log{,.1};zcat /var/log/dpkg.log.*.gz) |
egrep --text "^[^ ]* [^ ]* (configure|install|remove|status [^ ]*|trigproc|upgrade) $_P[: ]" |
sort --reverse | less
Utiliser dpkg.log capture les opérations qu’apt -get ne voit pas.
Sortie:
2016-12-20 09:47:35 status unpacked mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
2016-12-20 09:47:35 status installed mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
…
Pour obtenir l'historique des mises à jour d'un paquet spécifique en supposant qu'il a été installé / mis à jour via apt, voici un exemple (bash et zgrep), par exemple pour le paquet skypeforlinux:
package='skypeforlinux'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
Les fichiers d’historique d’historique de apt pour skypeforlinux, y compris les trois lignes précédentes, permettent d’obtenir la date. Puis itère sur le résultat et fait écho aux dates et versions pertinentes.
Remplacez la valeur de la variable de package par votre nom de package, même pour plusieurs packages, à condition qu'ils commencent par la même chaîne.
Exemple avec sortie:
package='apache'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
2017-10-19 15:00:09 apache2-utils:amd64 (2.4.18-2ubuntu3.5)
2017-11-24 14:24:45 apache-pom-java:amd64 (10-2build1, automatic)
2018-02-22 16:42:02 apache2-data:amd64 (2.4.18-2ubuntu3.5, automatic)
2018-02-26 15:34:34 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:36:32 apache2-data:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:40:50 apache2-data:amd64 (2.4.18-2ubuntu3.5, automatic)
2018-02-26 15:42:07 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:42:39 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-03-15 10:08:50 apache-pom-java:amd64 (10-2build1)
2018-04-20 08:55:07 apache2-data:amd64 (2.4.18-2ubuntu3.5, 2.4.18-2ubuntu3.8)
2018-07-06 08:55:11 apache2-data:amd64 (2.4.18-2ubuntu3.8, 2.4.18-2ubuntu3.9)