Speichert Debians dpkg die Uhrzeit / das Datum der Paketänderungen (dh Installation / Bereinigung)?

8

Ich weiß das dpkgund bin ein dpkg-querygutes Werkzeug, um herauszufinden, welche Pakete derzeit auf einem Debian-System installiert sind. Gibt es neben den in den Dateien protokollierten Informationen /var/log/dpkg.log.*noch einen anderen Ort, an dem ich wissen kann, wann eine Änderung stattgefunden hat (dh Uhrzeit und Datum der Installation eines Pakets)?

Unter der Annahme, dass diese Frage hier besagt, dass es Debians Paketsystem nicht darum geht, Informationen über den Ursprung einer Deb-Datei zu speichern (und wie sollte das auch sein?), Beginne ich zu denken, dass dies /var/log/dpkg.log.*der einzige Ort ist, an dem Informationen darüber vorliegen, wann etwas Ähnliches dpkgpassiert ist wird überhaupt gespeichert.

Vielleicht kann jemand dies bestätigen. Oder sagen Sie mir, ob die Zeitinformationen zu Paketinstallationen gespeichert sind (das wäre in der Tat großartig!), Wo sie zu finden sind (welche Datei?).

Menschlichkeit UND Frieden
quelle

Antworten:

5

/var/log/dpkg.logist die einzige Protokolldatei, die von dpkg selbst übrig bleibt. Es protokolliert, welche Pakete installiert, deinstalliert, aktualisiert usw. werden. Es gibt nur den Paketnamen, die Version und die Aktion an: dpkg kennt den Ursprung der Pakete nicht. Es gibt das Datum jeder Aktion an.

Wenn dpkg von einem Tool in der APT-Suite aufgerufen wurde ( apt-get, aptitude, Synaptic,…), werden die Aktionen von APT angemeldet /var/log/apt/history.logund /var/log/apt/term.log. Die Datei apt/history.logenthält die gleichen Informationen wie dpkg.log. Die Datei apt/term.logenthält eine Abschrift des dpkg-Laufs (Skripte vor und nach der Installation und -entfernung, dpkg-Lauf, Trigger).

Aptitude schreibt auch ein ähnliches Login /var/log/aptitude. Dieses Protokoll enthält die Aktionen, die aptitude versucht hat, unabhängig davon, ob sie erfolgreich waren oder nicht.

Sie können normalerweise auch feststellen, wann die aktuelle Version eines Pakets installiert wurde, indem Sie die Uhrzeit von überprüfen /var/lib/dpkg/info/$package.*. Diese Dateien haben möglicherweise eine neuere ctime, wenn sie aus irgendeinem Grund später geändert wurden (z. B. aus einer Sicherung wiederhergestellt). Die aktuelle Version war möglicherweise ein Upgrade von einer anderen Version. Diese Methode gibt keinen Aufschluss über frühere Versionen.

Wenn Sie etckeeper installieren und aktivieren /etc, wird die Änderung jedes Mal, wenn Sie APT ausführen und Änderungen vornehmen, der Versionskontrolle übergeben. Wenn APT nach einer Aktion automatisch ein Commit ausführt, wird in der Protokollnachricht die durchgeführte Aktion (z. B. welche Pakete installiert wurden) angegeben.

Es gibt kein Tool, das den Ursprung der Pakete protokolliert. Normalerweise stammt bei APT ein bestimmtes Paket immer aus derselben Quelle, es sei denn, die Quellen oder ihre Prioritäten haben sich geändert. In den seltenen Fällen, in denen sich Quellen oder Prioritäten geändert haben, gibt es keine allgemeine Möglichkeit, historische Informationen darüber abzurufen, woher ein in der Vergangenheit installiertes Paket stammt.

Gilles 'SO - hör auf böse zu sein'
quelle
Die ctime der /var/lib/dpkg/info/Dateien ändert sich sogar während des normalen apt-get upgradeBetriebs. Nach einem solchen Upgrade zB die Zeit dpkg.lstctime == mtime == current-time - und dpkg.md5sums ctime> mtime. Daher liefert das Betrachten der Uhrzeit leider nicht mehr Informationen als nur das Betrachten der Uhrzeit. Man kann zwischen ihnen keine Paket-Upgrade- / Installationszeiten unterscheiden.
Maxschlepzig
@maxschlepzig Ja, ich meinte, als die aktuelle Version des Pakets installiert wurde, nicht als eine Version zum ersten Mal installiert wurde. Ich werde das bearbeiten.
Gilles 'SO - hör auf böse zu sein'
3

Siehe die Dateien in /var/log/apt. Die Dateien history.logund term.logwerden von beiden apt-getund aptitudezumindest geschrieben. Beim apt-getAusführen wird auch die Befehlszeile angegeben. Sie möchten wahrscheinlich anschauen history.log. Dies protokolliert unter anderem den Zeitpunkt der Aktion.

So apt-getsieht beispielsweise ein Protokollabschnitt, der einer Paketinstallation mit entspricht, folgendermaßen aus:

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

Ein Protokollabschnitt, der einer Installation mit entspricht, aptitudesieht folgendermaßen aus:

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

Diese Beispiele stammen von einem Debian amd64-Keuchsystem.

Faheem Mitha
quelle