To jest wspaniałe. Brakuje tylko tego, kto uruchomił polecenia.
Ograniczone Zadośćuczynienie
3
@LimitedAtonement Zajrzyj na /var/log/auth.log, może zawierać użytkownika uruchamiającego instalację. (to nie pomoże, jeśli instalacja została wywołana przez powłokę / program działający jako root)
Lekensteyn
3
Przydatne także: zgrep, zcat
ishmael
czy ten plik rejestruje również pakiety zależności zainstalowane w wyniku oryginalnego apt-get?
Mahesha999
2
@LimitedAtonement najnowsze wersje APT oferują część dziennika „Requested-By:”, aby pokazać, kto wywołał komendę, a także komendę, którą wykonali, np. „Commandline: packagekit role = 'update-packages'” lub „Commandline: apt upgrade ”
Michael Tunnell,
21
Możesz także wykonać krótkie polecenie, aby wyświetlić interesującą treść.
+1: ładny jednowarstwowy, ale ważny tylko przez ostatni okres rotacji kłód. Zamiast tego sortużywaj sort -uw obu przypadkach, aby uniknąć powielania się linii, takich jak w pakiecie jak oracle-java8-installeri wielu innych.
Cbhihe,
1
Oto jak to właściwie robisz, powiedz pakiet mutter:
Pamiętaj, że potrójne backticks tutaj nie działają tak, jak myślisz.
edwinksl,
1
Aby uzyskać historię aktualizacji konkretnego pakietu, zakładając, że został on zainstalowany / zaktualizowany za pomocą apt, oto oneliner (bash i zgrep), przykład jest dla pakietu 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)
Plik greps apt zapisuje historię skypeforlinux, w tym poprzednie trzy wiersze, aby uzyskać datę. Następnie iteruje wynik i przypomina odpowiednie daty i wersje.
Wymienić pakiet zmiennej wartości z nazwą pakietu, nawet pracuje dla wielu pakietów, pod warunkiem że zaczynają z tego samego łańcucha.
Odpowiedzi:
Wszystkie akcje z apt (apt-get) są rejestrowane. Te pliki są dostępne w / var / log / apt /. Aby wyświetlić najnowszy dziennik historii, wykonaj:
Te dzienniki są obracane (chyba co miesiąc), stare pliki będą opatrzone liczbą i skompresowane. Aby wyświetlić następny dziennik historii, użyj:
Aby wyświetlić dostępne dzienniki:
źródło
Możesz także wykonać krótkie polecenie, aby wyświetlić interesującą treść.
Dodaj tę niestandardową funkcję do
~/.bashrc
:I nazwij to w takim terminalu:
Zabrano stąd
źródło
zgrep ... /var/log/dpkg.log*
- wypisuje również wpisy z archiwów.Możesz także użyć następującego polecenia, aby wyświetlić listę ostatnio zainstalowanych pakietów
źródło
grep "\ install\ " /var/log/apt/history.log
na wypadek, gdybyś musiał skopiować i wkleić listę do apt-getJeśli chcesz te pakiety, które zostały zainstalowane, a następnie nie odinstalowane, spróbuj tego:
To są instalacje minus wszelkie pasujące usunięcia.
Bibliografia:
comm
: https://stackoverflow.com/a/11963862/338303<(grep...)
składnia: https://unix.stackexchange.com/questions/73931/redirecting-multiple-commands-as-inputźródło
sort
używajsort -u
w obu przypadkach, aby uniknąć powielania się linii, takich jak w pakiecie jakoracle-java8-installer
i wielu innych.Oto jak to właściwie robisz, powiedz pakiet mutter:
Użycie dpkg.log przechwytuje operacje, których apt-get nie widzi.
Wynik:
źródło
Aby uzyskać historię aktualizacji konkretnego pakietu, zakładając, że został on zainstalowany / zaktualizowany za pomocą apt, oto oneliner (bash i zgrep), przykład jest dla pakietu skypeforlinux:
Plik greps apt zapisuje historię skypeforlinux, w tym poprzednie trzy wiersze, aby uzyskać datę. Następnie iteruje wynik i przypomina odpowiednie daty i wersje.
Wymienić pakiet zmiennej wartości z nazwą pakietu, nawet pracuje dla wielu pakietów, pod warunkiem że zaczynają z tego samego łańcucha.
Przykład z wyjściem:
źródło