Le dpkg de Debian stocke-t-il l'heure / la date des changements de paquet (c'est-à-dire l'installation / purges)?

8

Je le sais dpkget ce dpkg-querysont de bons outils pour découvrir les paquets actuellement installés sur un système Debian. Outre les informations enregistrées dans les fichiers, /var/log/dpkg.log.*y a-t-il un autre endroit qui me permettrait de savoir quand un changement a eu lieu (c'est-à-dire l' heure et la date d'une installation d'un paquet)?

En supposant que cette question indique ici que le système de paquets de Debian ne se soucie pas de stocker des informations sur l'origine d'un fichier deb (et comment devrait-il le faire?) Je commence à penser que /var/log/dpkg.log.*c'est le seul endroit où les informations sur le moment où quelque chose de dpkgconnexe s'est produit est stocké du tout.

Peut-être que quelqu'un peut le confirmer. Ou bien, dites-moi si les informations de temps concernant les installations de packages sont stockées (ce serait bien!) Où les trouver (quel fichier?).

humanANDpeace
la source

Réponses:

5

/var/log/dpkg.logest le seul fichier journal laissé par dpkg lui-même. Il enregistre les packages installés, désinstallés, mis à niveau, etc. Il indique uniquement le nom du package, la version et l'action: dpkg ne connaît pas l'origine des packages. Il indique la date de chaque action.

Si dpkg a été invoqué par un outil de la suite APT ( apt-get, aptitude, Synaptic,…), les actions d'APT sont connectées /var/log/apt/history.loget /var/log/apt/term.log. Le fichier apt/history.logcontient le même type d'informations que dpkg.log. Le fichier apt/term.logcontient une transcription de l'exécution de dpkg (scripts avant et après l'installation et de suppression, exécution de dpkg, déclencheurs).

Aptitude écrit également une connexion similaire /var/log/aptitude. Ce journal contient les actions tentées par aptitude, qu'elles aient réussi ou non.

Vous pouvez également généralement déterminer quand la version actuelle d'un package a été installée en vérifiant le ctime de /var/lib/dpkg/info/$package.*. Ces fichiers peuvent avoir un ctime plus récent s'ils ont été modifiés ultérieurement pour une raison quelconque (par exemple restaurés à partir d'une sauvegarde). La version actuelle peut avoir été une mise à niveau d'une autre version, cette méthode ne vous dira rien sur les versions précédentes.

Si vous installez et activez etckeeper , chaque fois que vous exécutez APT et quelque chose dans les /etcmodifications, la modification est validée pour le contrôle de version. Lorsque APT effectue une validation automatiquement après une action, il indique l'action effectuée (par exemple, quels packages ont été installés) dans le message du journal.

Il n'y a aucun outil qui enregistre l'origine des packages. Habituellement, avec APT, un paquet donné provient toujours de la même source, sauf si les sources ou leurs priorités ont changé. Dans les rares cas où les sources ou les priorités ont changé, il n'existe aucun moyen général de récupérer des informations historiques sur l'origine d'un package installé par le passé.

Gilles 'SO- arrête d'être méchant'
la source
Le temps des /var/lib/dpkg/info/fichiers change même pendant le apt-get upgradefonctionnement normal . Après une telle mise à niveau, par exemple, dpkg.lstctime == mtime == current-time - et dpkg.md5sums ctime> mtime. Ainsi, malheureusement, regarder le ctime ne fournit pas plus d'informations que simplement regarder le mtime. On ne peut pas distinguer les temps de mise à niveau / d'installation des packages avec eux.
maxschlepzig
@maxschlepzig Oui, je voulais dire quand la version actuelle du paquet a été installée, pas quand une version a été installée pour la première fois. Je vais éditer ça.
Gilles 'SO- arrête d'être méchant'
3

Voir les fichiers dans /var/log/apt. Les fichiers history.loget term.logsont écrits par les deux apt-getet aptitude, au moins. Lors de l' apt-getexécution, la ligne de commande est également indiquée. Vous voulez probablement regarder history.log. Entre autres choses, cela enregistre le temps de l'action.

Ainsi, par exemple, une section de journal correspondant à une installation de package utilisant apt-getressemble à:

Start-Date: 2013-09-02  00:27:25
Commandline: apt-get install unrar
Install: unrar:amd64 (4.1.4-1)
End-Date: 2013-09-02  00:27:29

Une section de journal correspondant à une installation utilisant aptituderessemble à:

Start-Date: 2013-09-02  16:39:11
Install: hello:amd64 (2.8-2)
End-Date: 2013-09-02  16:39:15

Ces exemples proviennent d'un système Debian amd64 Wheezy.

Faheem Mitha
la source