Dystrybucje oparte na RPM, takie jak Red Hat, są łatwe:
rpm -qa --last
W Debianie i innych dystrybucjach opartych na dpkg twój specyficzny problem jest również łatwy:
grep install /var/log/dpkg.log
Chyba że plik dziennika został obrócony, w takim przypadku powinieneś spróbować:
grep install /var/log/dpkg.log /var/log/dpkg.log.1
Ogólnie rzecz biorąc, dpkg
i apt
nie wydaje się, aby śledzić datę instalacji, biorąc pod uwagę brak takiego pola na dpkg-query
stronie podręcznika .
I w końcu stare /var/log/dpkg.log.*
pliki zostaną usunięte przez rotację logów, więc nie ma gwarancji, że da Ci to całą historię twojego systemu.
Jedną z sugestii, która pojawia się kilka razy (np. Ten wątek ) jest spojrzenie na /var/lib/dpkg/info
katalog. Pliki tam sugerują, że możesz spróbować czegoś takiego:
ls -t /var/lib/dpkg/info/*.list | sed -e 's/\.list$//' | head -n 50
Aby odpowiedzieć na pytanie dotyczące wybranych opcji, oto pierwsze przejście.
buduj listę pakietów według dat
$ find /var/lib/dpkg/info -name "*.list" -exec stat -c $'%n\t%y' {} \; | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list\t,\t,' | \
sort > ~/dpkglist.dates
buduj listę zainstalowanych pakietów
$ dpkg --get-selections | sed -ne '/\tinstall$/{s/[[:space:]].*//;p}' | \
sort > ~/dpkglist.selections
dołącz do 2 list
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.dates \
> ~/dpkglist.selectiondates
Z jakiegoś powodu nie drukuje dla mnie zbyt wielu różnic, więc może istnieć błąd lub nieprawidłowe założenie dotyczące tego, co --get-selections
oznacza.
Możesz oczywiście ograniczyć pakiety za pomocą find . -mtime -<days>
lub head -n <lines>
i zmienić format wyjściowy, jak chcesz, np
$ find /var/lib/dpkg/info -name "*.list" -mtime -4 | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list$,,' | \
sort > ~/dpkglist.recent
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.recent \
> ~/dpkglist.recentselections
aby wyświetlić listę tylko tych opcji, które zostały zainstalowane (zmienione?) w ciągu ostatnich 4 dni.
Prawdopodobnie można również usunąć sort
polecenia po sprawdzeniu kolejności sortowania używanej przez dpkg --get-selections
i zwiększyć find
wydajność polecenia.