[gelöst]Wann wurde ein bestimmtes Paket installiert?
- Strunz_1975
- Beiträge: 2512
- Registriert: 13.04.2007 14:29:32
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
[gelöst]Wann wurde ein bestimmtes Paket installiert?
Hallo.
gibt es entweder mit "dpkg" oder "apt-get" die Möglichkeit zu bestimmen, wann ein bestimmtes Paket "libdvdread4" installiert
worden ist?
Mfg
Strunz_1975
gibt es entweder mit "dpkg" oder "apt-get" die Möglichkeit zu bestimmen, wann ein bestimmtes Paket "libdvdread4" installiert
worden ist?
Mfg
Strunz_1975
Zuletzt geändert von Strunz_1975 am 11.08.2016 22:37:58, insgesamt 1-mal geändert.
Debian Bookworm
- Patsche
- Beiträge: 3262
- Registriert: 21.06.2013 01:47:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home/10001101001
Re: Wann wurde ein bestimmtes Paket installiert?
Müsste in den logs stehen.
Code: Alles auswählen
cat /var/log/apt/history.log
- Strunz_1975
- Beiträge: 2512
- Registriert: 13.04.2007 14:29:32
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Re: Wann wurde ein bestimmtes Paket installiert?
So:Patsche hat geschrieben:Müsste in den logs stehen.Code: Alles auswählen
cat /var/log/apt/history.log
cat history.log | grep libdvdread4
???
Debian Bookworm
Re: Wann wurde ein bestimmtes Paket installiert?
Resp.
Weitere Logs
/var/log/aptitude*
/var/log/dpkg.log*
Code: Alles auswählen
zcat history.log*gz | grep libdvdread4
oder
zgrep libdvdread4 history.log*gz
/var/log/aptitude*
/var/log/dpkg.log*
Zuletzt geändert von rendegast am 11.08.2016 18:18:03, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- Strunz_1975
- Beiträge: 2512
- Registriert: 13.04.2007 14:29:32
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Re: Wann wurde ein bestimmtes Paket installiert?
Wenn ich beide Befehle in die Kommandozeile eingebe, kommt nichts!rendegast hat geschrieben:Resp.Code: Alles auswählen
zcat history.log*gz | grep libdvdread4 oder zgrep libdvdread4 history.log*gz
Debian Bookworm
Re: Wann wurde ein bestimmtes Paket installiert?
Weitere Logs
/var/log/aptitude*
/var/log/dpkg.log*
/var/log/aptitude*
/var/log/dpkg.log*
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Wann wurde ein bestimmtes Paket installiert?
Oder ganz anders:
Code: Alles auswählen
ls -l /var/lib/dpkg/info/libdvdread4*.list
- Patsche
- Beiträge: 3262
- Registriert: 21.06.2013 01:47:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home/10001101001
Re: Wann wurde ein bestimmtes Paket installiert?
Vielleicht gibts du grep noch die Option --color mit, dann wird es farbig hervorgeheben. Allerdings lässt sich so noch nicht feststellen, wann ein Paket installiert wurde. Vielleicht weiß jemand, wie man einfach zusätzlich noch das Startdatum mit ausgeben kann. Ich bekomme das gerade nicht hin.
- Patsche
- Beiträge: 3262
- Registriert: 21.06.2013 01:47:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home/10001101001
Re: Wann wurde ein bestimmtes Paket installiert?
Das klappt auch gutmaroc hat geschrieben:Oder ganz anders:Code: Alles auswählen
ls -l /var/lib/dpkg/info/libdvdread4*.list
Wie kann man den farbig greppen und trotzdem alles anzeigen lassen? So als wenn man eine Datei durchsucht und einfach nur das Wort farbig hervorhebt. Da finde ich auch nichts zu...aber ich will hier nicht kapern.
Re: Wann wurde ein bestimmtes Paket installiert?
Hi
[OT]
@ Patsche
[/OT]
ciao
[OT]
@ Patsche
Code: Alles auswählen
ls -l /var/lib/dpkg/info/ | grep --color=auto -i libdvdread4
ciao
- Patsche
- Beiträge: 3262
- Registriert: 21.06.2013 01:47:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home/10001101001
Re: Wann wurde ein bestimmtes Paket installiert?
Das ist nicht ganz das, was ich suche. Ich möchte beispielseise die Ausgabe von ls -l /var/lib/dpkg/info/ komplett ausgegeben bekommen, nur dass dann das libdvdread4 markiert wird.ohnex hat geschrieben:Code: Alles auswählen
ls -l /var/lib/dpkg/info/ | grep --color=auto -i libdvdread4
Das ganze soll dann auch mit cat oder less funktionieren....
Als konkretes Beispiel:
Die Ausgabe von
Code: Alles auswählen
cat /var/log/apt/history.log
Code: Alles auswählen
Start-Date: 2016-08-11 19:20:47
Commandline: apt install engrampa
Install: engrampa:amd64 (1.8.1+dfsg1-1)
End-Date: 2016-08-11 19:20:50
Code: Alles auswählen
cat /var/log/apt/history.log | grep -i --color=always engrampa
Code: Alles auswählen
Purge: caja-common:amd64 (1.8.2-3+deb8u1), mate-control-center:amd64 (1.8.3+dfsg1-2), engrampa:amd64 (1.8.1+dfsg1-1)
Commandline: apt install engrampa
Install: engrampa:amd64 (1.8.1+dfsg1-1)
Hoffe ihr versteht, was ich meine.
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Wann wurde ein bestimmtes Paket installiert?
@Patsche.
Wo ist der Grund das zu wollen?
Was grep noch kann ist Zeilen vor und hinter der gefunden Zeile mit dem match mit anzuzeigen mit dem Schalter -C. Aber mehr geht wohl nicht.
Wo ist der Grund das zu wollen?
Was grep noch kann ist Zeilen vor und hinter der gefunden Zeile mit dem match mit anzuzeigen mit dem Schalter -C. Aber mehr geht wohl nicht.
Zuletzt geändert von Anonymous am 11.08.2016 22:46:39, insgesamt 1-mal geändert.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Wann wurde ein bestimmtes Paket installiert?
cat /var/log/apt/history.log | grep --color -i -E "engrampa|*"
Aber ob das so guter Stiel ist und keine "Falle" birgt kann ich nicht sagen.
Aber ob das so guter Stiel ist und keine "Falle" birgt kann ich nicht sagen.
Zuletzt geändert von Anonymous am 11.08.2016 22:38:30, insgesamt 2-mal geändert.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
- Strunz_1975
- Beiträge: 2512
- Registriert: 13.04.2007 14:29:32
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Re: Wann wurde ein bestimmtes Paket installiert?
Ich kann aber noch -B (before) und -A (after) und die Zahl der Zeilen angeben.
Ansonsten muß Patsche mal genau beschreiben was er will, so versteht man Zug bleibt stehen und Bahnhof fährt ab.
Ansonsten muß Patsche mal genau beschreiben was er will, so versteht man Zug bleibt stehen und Bahnhof fährt ab.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
Re: Wann wurde ein bestimmtes Paket installiert?
Und für less sowas hier:
Code: Alles auswählen
less -p<PATTERN> file
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: [gelöst]Wann wurde ein bestimmtes Paket installiert?
Mit less macht es (mehr) Sinn. Lesehilfe. Passt bei grep aber auchtobo hat geschrieben:Und für less sowas hier:Code: Alles auswählen
less -p<PATTERN> file
Zuletzt geändert von Anonymous am 11.08.2016 23:21:12, insgesamt 2-mal geändert.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
- Patsche
- Beiträge: 3262
- Registriert: 21.06.2013 01:47:54
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home/10001101001
Re: Wann wurde ein bestimmtes Paket installiert?
inne hat geschrieben:cat /var/log/apt/history.log | grep --color -i -E "engrampa|*"
Genau so etwas habe ich ich gesucht. Danke.tobo hat geschrieben:Und für less sowas hier:Code: Alles auswählen
less -p<PATTERN> file
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: [gelöst]Wann wurde ein bestimmtes Paket installiert?
Mich wundert es nur, das mein Konstrukt sich so verhält. Aber es wird absichtlich so programmiert worden sein...
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Wann wurde ein bestimmtes Paket installiert?
Hier kommt die Erklaerung:
- `--color' hebt den gefundenen Match farblich hervor
- `-i' matcht case-insensitive (was hier irrelevant ist)
- `-E' ist (etwa) das Gleiche wie wenn man egrep(1) verwendet, das ist fuer die Alternation (|) erforderlich
Das Pattern matched auf entweder den String ``engrampe'' oder auf ``*''. Was der Stern hier soll, verstehe ich (noch) nicht. Wenn man ihn weglaesst (d.h. leeres Pattern) oder durch ``^'' ersetzt, dann ist das Ergebnis das gleiche. Das leere Pattern oder der Zeilenanfang matchen auf jede Zeile, darum wird jede Zeilie ausgegeben; es wird aber nichts farblich hervorgehoben, weil in beiden Faellen kein Text der Inputzeile matched sondern nur der leere String am Anfang oder Ende der Zeile.
Dass jede Zeile ausgegeben wird liegt also am zweiten Teil der Alternation. Dass ``engrampa'' farblich hervorgehoben wird liegt am ersten Teil der Alternation.
Schaut man sich die Ausfuehrzeiten an, so ist die Variante mit Zeilenanfangs- (^) oder Zeilenendeankern ($) deutlich schneller (0.00s) als wenn man das leere Pattern oder diesen ominoesen Stern verwendet (0.07s).
Nun nochmal zum ominoesen Stern. Vereinfachen wir also:
Das gibt alle Zeilen aus, matcht aber keinen Teil der Zeilen.
Das gibt dagegen nur die Zeilen aus, die einen literalen Stern enthalten ... aus dem Grund, weil ein Quantifier ohne etwas davor keinen Sinn macht und darum literal gematcht wird. Das ist gleich wie ein Dollarzeichen mit etwas dahinter oder ein Caret mit etwas davor. ... allerdings nur im Fall von grep. Anders bei egrep (also ``grep -E'').
Dann schauen wir also mal in POSIX:
http://pubs.opengroup.org/onlinepubs/96 ... g_09_04_03
... und siehe da: Das Verhalten ist undefiniert.
(Darueber wie das leere Pattern zu handhaben ist, habe ich allerdings nichts gefunden. Ich sehe das also ebenso als undefiniert an.)
Korrekt ist daher:
- grep(1) gibt nur die Zeilen aus die matcheninne hat geschrieben:cat /var/log/apt/history.log | grep --color -i -E "engrampa|*"
- `--color' hebt den gefundenen Match farblich hervor
- `-i' matcht case-insensitive (was hier irrelevant ist)
- `-E' ist (etwa) das Gleiche wie wenn man egrep(1) verwendet, das ist fuer die Alternation (|) erforderlich
Das Pattern matched auf entweder den String ``engrampe'' oder auf ``*''. Was der Stern hier soll, verstehe ich (noch) nicht. Wenn man ihn weglaesst (d.h. leeres Pattern) oder durch ``^'' ersetzt, dann ist das Ergebnis das gleiche. Das leere Pattern oder der Zeilenanfang matchen auf jede Zeile, darum wird jede Zeilie ausgegeben; es wird aber nichts farblich hervorgehoben, weil in beiden Faellen kein Text der Inputzeile matched sondern nur der leere String am Anfang oder Ende der Zeile.
Dass jede Zeile ausgegeben wird liegt also am zweiten Teil der Alternation. Dass ``engrampa'' farblich hervorgehoben wird liegt am ersten Teil der Alternation.
Schaut man sich die Ausfuehrzeiten an, so ist die Variante mit Zeilenanfangs- (^) oder Zeilenendeankern ($) deutlich schneller (0.00s) als wenn man das leere Pattern oder diesen ominoesen Stern verwendet (0.07s).
Nun nochmal zum ominoesen Stern. Vereinfachen wir also:
Code: Alles auswählen
grep -E '*'
Code: Alles auswählen
grep '*'
Dann schauen wir also mal in POSIX:
http://pubs.opengroup.org/onlinepubs/96 ... g_09_04_03
Code: Alles auswählen
*+?{
The <asterisk>, <plus-sign>, <question-mark>, and <left-brace> shall be special except when used in a bracket expression (see RE Bracket Expression). Any of the following uses produce undefined results:
If these characters appear first in an ERE, or immediately following a <vertical-line>, <circumflex>, or <left-parenthesis>
(Darueber wie das leere Pattern zu handhaben ist, habe ich allerdings nichts gefunden. Ich sehe das also ebenso als undefiniert an.)
Korrekt ist daher:
Code: Alles auswählen
cat /var/log/apt/history.log | grep --color -i -E "engrampa|^"
Use ed once in a while!
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Wann wurde ein bestimmtes Paket installiert?
Das muss grep --color -E '*' sein! Und dann ist die Frage, warum wird nicht alles farbig hervorgehoben?Meillo hat geschrieben:Was der Stern hier soll, verstehe ich (noch) nicht.
Nun nochmal zum ominoesen Stern. Vereinfachen wir also:Code: Alles auswählen
grep -E '*'
Der * bedeutet das der voranstehende Ausdruck beliebig oft (auch keinmal) vorkommen darf. Hier steht "" davor, deswegen?
PS: Patsche wollte bei grep den gesamten Text ausgegeben haben und Matches wie hier das Pattern engrampa, sollten aber farbig hervorgehoben werden. Also wie der less Befehl oben.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Wann wurde ein bestimmtes Paket installiert?
Das musst du die GNU grep-Entwickler fragen, weil das Verhalten fuer diesen Fall unspezifiziert ist und sie damit alles machen koennen was sie wollen und fuer sinnvoll halten. Dass alles farbig werden soll, finde ich falsch, wenn ``*'' ist nicht gleich ``.*''! Ersteres matcht nur beim Globbing auf alles, waehrend zweiteres bei Regexp auf alles matcht!inne hat geschrieben:Das muss grep --color -E '*' sein! Und dann ist die Frage, warum wird nicht alles farbig hervorgehoben?Meillo hat geschrieben:Was der Stern hier soll, verstehe ich (noch) nicht.
Nun nochmal zum ominoesen Stern. Vereinfachen wir also:Code: Alles auswählen
grep -E '*'
Btw: Dieses --color braucht man nur, wenn man *sehen* muss was gematcht hat ... wenn man das aber schon weiss, dann muss man es sich nicht noch extra vom Computer anzeigen lassen.
Schon klar. Genau das macht mein Vorschlag von ganz am Ende (der POSIX-konform ist):PS: Patsche wollte bei grep den gesamten Text ausgegeben haben und Matches wie hier das Pattern engrampa, sollten aber farbig hervorgehoben werden. Also wie der less Befehl oben.
Code: Alles auswählen
egrep --color 'engrampa|^'
(Es scheint Zeit fuer's Bett zu werden ...)
Use ed once in a while!
Re: Wann wurde ein bestimmtes Paket installiert?
Siehe POSIX-Zitat.inne hat geschrieben: Der * bedeutet das der voranstehende Ausdruck beliebig oft (auch keinmal) vorkommen darf. Hier steht "" davor, deswegen?
Use ed once in a while!
Re: Wann wurde ein bestimmtes Paket installiert?
Vermutlich aus dem selben Grund, wieso ein grep --color -E "a*" auch alles ungefärbt ausgibt, wenn kein a in der Datei ist. Der Stern als Quantifizierer matched immer, völlig egal was in der Zeile steht oder als Suchargument übergeben wird.inne hat geschrieben:Und dann ist die Frage, warum wird nicht alles farbig hervorgehoben?
Ich glaube auch nicht, dass man hier POSIX heranziehen darf - meiner Meinung nach zielt der Quantifizierer bei grep -E "*" auf den Nullstring, ähnlich wie bei grep -E "()*" auch!? Zusätzliches Indiz ist auch ein Rückgabewert von 0, obwohl -o nichts anzeigt.
Und nur mal so nebenbei, das
Code: Alles auswählen
cat /var/log/apt/history.log | grep --color -i -E "uuoc|^"
Re: Wann wurde ein bestimmtes Paket installiert?
Wieso sollte man POSIX nicht heranziehen duerfen? POSIX spezifiziert das Verhalten von Unix Tools. Wenn man nun wissen will, warum sich ein Tools soundso verhaelt, dann schaue ich zuerst in die Manpage. Da diese meist recht knapp ist und die Details aussen vor laesst, schaue ich danach in POSIX. Natuerlich ist nicht gesagt, dass sich jedes Tool POSIX-konform verhaelt, aber die meisten schon ... und wer will bei sowas wie egrep(1) schon im Quellcode wuehlen wollen? (Die Alternative waere schliesslich vermuten.)tobo hat geschrieben: Ich glaube auch nicht, dass man hier POSIX heranziehen darf - meiner Meinung nach zielt der Quantifizierer bei grep -E "*" auf den Nullstring, ähnlich wie bei grep -E "()*" auch!?
Und im konkreten Fall ist POSIX doch sehr hilfreich mit seiner Aussage. Hier nochmal die Essenz:
Mir kommt es so vor, wie wenn das nicht richtig verstanden worden waere. Darum nochmal auf Deutsch und auf unseren konkreten Fall bezogen: ``Folgendes erzeugt undefinierte Ergebnisse: Wenn der Stern als erstes in der Regexp steht oder direkt nach einem senkrechten Strich.'' POSIX hilft uns zwar nicht zu verstehen, warum es sich so verhaelt, aber wir lernen, dass sich GNU egrep hier verhaelt wie es will, und man nur bei dem Tool selbst schauen kann, weil sich jede andere egrep-Implementierung anders verhalten kann. Insofern war es schon hilfreich POSIX zu konsultieren.Any of the following uses produce undefined results:
If these characters appear first in an ERE, or immediately following a <vertical-line> [...]
Also. Man kann jetzt anfangen zu raten, warum sich GNU egrep so verhaelt wie es sich verhaelt ... und *wie* es sich wirklich verhaelt. -- Bislang schauen wir uns ja nur den Output an, verstehen aber nicht wie die Regexp-Engine in diesem Fall tatsaechlich arbeitet. ``*'' kann jedenfalls nicht gleich interpraetiert werden wie ``.*'' (also: matche auf alles), weil sonst wuerden sich die Laufzeiten der beiden Aufrufe nicht unterscheiden, was aber der Fall ist ... und --color wuerde in beiden Faellen den gleiche Treffer markieren.
Es spricht einiges fuer die Erklaerung, die du oben lieferst. Aber an welcher Stelle matcht der beliebig oft wiederholbare leere String nun? Es kann eigentlich nur der leere String am Zeilenbeginn sein. (``Fruehester laengster Treffer'') Aber warum ist die Laufzeit dieses Aufrufs so lang? ``^'' braucht ja auch nicht so lang, obwohl es das Gleiche matcht. Am Stern (also an zu vielen Moeglichkeiten) kann es auch nicht liegen, weil ``?'' dauert genauso lange, und das muss nur zwei Moeglichkeiten pruefen. Und fuer was steht die leere Regexp? Die braucht naemlich auch lange, scheint aber auch nur ``^'' zu entsprechen. Sind das nur die Folgen von Optimierungen fuer ``^'' und Co.?
Im Friedl habe ich jedenfalls keine Antworten zu diesen Fragen gefunden. Hat jemand vielleicht ein Buch zu GNU egrep, das darauf eingeht? Oder kennt jemand den Quellcode?
Use ed once in a while!