RPM-дистрибуції на зразок Red Hat прості:
rpm -qa --last
У Debian та інших дистрибутивах, що базуються на dpkg, ваша конкретна проблема також проста:
grep install /var/log/dpkg.log
Якщо файл журналу не повернуто, у такому випадку слід спробувати:
grep install /var/log/dpkg.log /var/log/dpkg.log.1
Взагалі, dpkg
і apt
, здається, не відстежувати дату встановлення, ідучи через відсутність будь-якого такого поля на dpkg-query
сторінці man.
І згодом старі /var/log/dpkg.log.*
файли будуть видалені обертанням журналу, так що цей спосіб не гарантовано надасть вам всю історію вашої системи.
Одне з пропозицій, яке з’являється кілька разів (наприклад, цей потік ), - це переглянути /var/lib/dpkg/info
каталог. Файли там пропонують спробувати щось на кшталт:
ls -t /var/lib/dpkg/info/*.list | sed -e 's/\.list$//' | head -n 50
Щоб відповісти на запитання про вибір, ось перший пропуск.
скласти список пакетів за датами
$ 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
скласти список встановлених пакетів
$ dpkg --get-selections | sed -ne '/\tinstall$/{s/[[:space:]].*//;p}' | \
sort > ~/dpkglist.selections
приєднайтесь до 2 списків
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.dates \
> ~/dpkglist.selectiondates
Чомусь це не друкує дуже багато відмінностей для мене, тому може виникнути помилка чи невірне припущення про те, що --get-selections
означає.
Ви, очевидно, можете обмежити пакунки, використовуючи find . -mtime -<days>
або head -n <lines>
, і змінювати вихідний формат, як вам подобається, наприклад
$ 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
перелічити лише вибрані місця, які були встановлені (змінені?) за останні 4 дні.
Можливо, ви також можете видалити sort
команди після перевірки використовуваного порядку сортування dpkg --get-selections
та зробити find
команду більш ефективною.