Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Wie Timestamps von DEB-Paketen abfragen?  (Read 3844 times)

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Wie Timestamps von DEB-Paketen abfragen?
« on: 2012/01/21, 16:28:45 »
Hi zusammen,
ich bräuchte für ein Shellscript die Timestamps zu Installationszeitpunkt und Erstellungszeitpunkt des DEB-Paketes. Mit dpkg-query kann zwar die Datenbank abfragen, aber die oben genannten Kriterien sind laut man-Page nicht zu ermitteln.

Gibt's da noch eine andere Möglichkeit dies zu ermitteln?

Online michaa7

  • User
  • Posts: 2.204
Wie Timestamps von DEB-Paketen abfragen?
« Reply #1 on: 2012/01/21, 16:37:09 »
hier das ende meines /var/log/dpkg.log

Quote
# tail /var/log/dpkg.log
2012-01-19 20:45:57 trigproc menu 2.1.46 <keine>
2012-01-19 20:45:57 status half-configured menu 2.1.46
2012-01-19 20:46:00 status installed menu 2.1.46
2012-01-19 20:46:00 trigproc initramfs-tools 0.99 <keine>
2012-01-19 20:46:00 status half-configured initramfs-tools 0.99
2012-01-19 20:46:21 status installed initramfs-tools 0.99
2012-01-19 20:46:21 trigproc tex-common 2.10 <keine>
2012-01-19 20:46:21 status half-configured tex-common 2.10
2012-01-19 20:46:21 status installed preview-latex-style 11.86-9
2012-01-19 20:46:24 status installed tex-common 2.10


das wär ja zumindest mal der installationszeitpunkt ( status installed ).

Erstellungszeitpunkt scheint mir fast unmöglich, wenn das nicht bei debian.org auf dem builtserver abfragbar ist. Auf den repositorys ist erstellungsdatum ja nur das datum, wann das file auf den server getellt wurde.
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline ralul

  • User
  • Posts: 1.814
Wie Timestamps von DEB-Paketen abfragen?
« Reply #2 on: 2012/01/21, 16:42:37 »
ls -t -l /var/lib/dpkg/info/*.md5sums
Zeitformatierung unter:
man ls
man date #FORMAT string
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Wie Timestamps von DEB-Paketen abfragen?
« Reply #3 on: 2012/01/21, 16:51:45 »
Hi michaa7,
hmmm, ich dachte das müsste ohne große Probleme möglich sein. RPM kann das bereits ;-)
Code: [Select]

# rpm -q --queryformat '%{NAME} %{VERSION} %{BUILDTIME:date} %{INSTALLTIME:date}\n' wpa_supplicant
wpa_supplicant 0.7.3 Fr 09 Sep 2011 18:16:59 CEST So 27 Nov 2011 12:34:26 CET

Gibt's da nicht etwas äquivalentes für dpkg/apt?

Online michaa7

  • User
  • Posts: 2.204
Wie Timestamps von DEB-Paketen abfragen?
« Reply #4 on: 2012/01/21, 17:24:48 »
Wenn ich ihn hier richtig verstehe, dann liegt das daran, das es in *.deb im gegensatz zu *.rpm schlichtweg **kein kontrollfeld** dafür gibt.

http://rute.2038bug.com/node27.html.gz#SECTION002724000000000000000  

/Special queries

dann wirst du nur mit nem würgaround wie von ralul vorgeschlagen weiter kommen
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Wie Timestamps von DEB-Paketen abfragen?
« Reply #5 on: 2012/01/21, 17:56:06 »
Hi michaa7,
der Link von dir ist gut mit dem Vergleich RPM vs. DPKG. Ist schon komisch warum es bei Debianpaketen kein Kontrollfeld für die Timestamps gibt. Da hat hat RPM doch einiges mehr zu bieten ;-)

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Re: Wie Timestamps von DEB-Paketen abfragen?
« Reply #6 on: 2012/01/21, 18:08:07 »
Quote from: "ralul"
ls -t -l /var/lib/dpkg/info/*.md5sums
Zeitformatierung unter:
man ls
man date #FORMAT string

Hi ralul,
Danke für dein Tip zur Ermittlung des Installationszeitpunktes eines Paketes. Den Timestamp für die Buildtime (wie bei rpm) kann man nicht ermitteln für ein Debianpaket?

Online michaa7

  • User
  • Posts: 2.204
Re: Wie Timestamps von DEB-Paketen abfragen?
« Reply #7 on: 2012/01/21, 18:26:13 »
ich denke hier missverstehst du ralul (und wohl teilweise auch mich):
Ich hab da jetzt nicht tiefer hineingeschaut, aber die md5sums sollten ja wohl im zusammenhang mit dem paket build oder sehr kurz dananch erstellt worden sein, ich glaube jedenfalls nicht, dass es dabei um lokal erstellte md5 files geht, warum auch sollte man letztere speichern.
Und für den installationszeitpunkt hatte ich dir ja in meinem ersten posting ne lösung skizziert.


EDIT://
Zudem gibt es im changelog

Code: [Select]
zless /usr/share/doc/<paketname>/changelog.Debian.gz

immer eine zeitangabe des builds oder wenn es einen patch gab, den des patches, was letztlich identisch sein dürfte (eben weil in einigen fällen eine buildtime angeben ist)
Ok, you can't code, but you still might be able to write a bug report for Debian's sake

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Re: Wie Timestamps von DEB-Paketen abfragen?
« Reply #8 on: 2012/01/21, 18:53:25 »
Hi michaa7,
klar du hast Recht 8)
Der Timestamp der *.md5sums dürfte der Buildtime von RPM entsprechen.

Ich habe das gerade an einem Beispiel gesehen, als ich am 14. Januar gegen 15Uhr das Paket gdisk installiert habe. Die zugehörigen md5sums-Dateien sehen auf meinem System so aus:
Code: [Select]

$ ls -t -l /var/lib/dpkg/info/gdisk*.md5sums
-rw-r--r-- 1 root root 710 Nov 11 20:42 /var/lib/dpkg/info/gdisk.md5sums

$ stat /var/lib/dpkg/info/gdisk.md5sums
  Datei: „/var/lib/dpkg/info/gdisk.md5sums“
  Größe: 710            Blöcke: 8          EA Block: 4096   reguläre Datei
Gerät: fe07h/65031d     Inode: 1003        Verknüpfungen: 1
Zugriff: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Zugriff    : 2012-01-14 15:10:05.346008858 +0100
Modifiziert: 2011-11-11 20:42:12.000000000 +0100
Geändert   : 2012-01-14 15:10:10.523008737 +0100

Das Erstellungsdatum der Datei gdisk.md5sums ist vom 11. November 2011 (2011-11-11 20:42) und der Installationszeitpunkt der 14. Januar (2012-01-14 15:10).

Ich brauche also für mein Shellscript von der jeweiligen md5sums-Datei des installierten Paketes nur die Ausgabe des stat-Kommandos in zwei Variablen zu schreiben (jeweils der Inhalt von "Modifiziert" bzw. "Geändert").

Na dann hält sich der Programmierungsaufwand in Grenzen, aber bei einen System mit RPM ist das schon eleganter gelöst ;-)