Существует альтернативный подход командной строки для получения истории установки.
Менеджер пакетов, aptкажется, регистрирует все /var/log/apt/history.logи /var/log/apt/term.log, в том числе разделяет все по датам. Оба содержат похожую, полезную информацию, но term.logоба более многословны и не указывают явно, что инициировало операцию.
Журнал истории
/var/log/apt/history.logхранит краткое резюме каждого aptпрогона. Вот мой фрагмент для ручной установки:
Start-Date: 2014-08-22 17:17:52
Commandline: apt-get install nautilus-dropbox
Install: nautilus-dropbox:amd64 (1.6.1-1), python-gpgme:amd64 (0.3-0ubuntu3, automatic)
End-Date: 2014-08-22 17:19:13
Commandline:Поле указывает на то, что вызвало запуск, и в случае установок , сделанных менеджером обновлений он должен выглядеть примерно так:
Commandline: aptdaemon role='role-commit-packages' sender=':1.131'
... и вот ваш список пакетов, отсортированный по дате, способу и действию (установка / обновление / удаление). Обратите внимание, что если вы хотите передать эти пакеты обратно apt-get remove ...:
- Как уже упоминалось , это полностью удаляет пакеты, а не возвращает их. Информация в журналах, безусловно, может использоваться для просмотра обновленных пакетов, хотя откат их - это другой вопрос.
Вам нужно убрать скобки, их содержимое и разделитель запятых из списка с помощью предпочтительного метода обработки текста (например sed, vimи т. Д.). Поэтому, если я хочу удалить пакеты из приведенного выше фрагмента, я могу использовать строку относительно напрямую:
sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
Терминал журнала
Обычно /var/log/apt/term.logэто менее удобно структурировано, но для полноты вы можете получить ту же информацию. Вывод терминала снова ограничен временными метками, и установки пакетов можно получить из строк следующего вида:
Selecting previously unselected package nautilus-dropbox.
Ниже приведен один из способов печати списка установленных пакетов на терминал для всего журнала:
$ awk '/^Selecting/ {gsub(/\./,""); print $5}' /var/log/apt/term.log
Это может быть адаптировано или расширено, чтобы получить установки в диапазоне дат.
apt-get remove:sed 's/ ([^)]*)//g' | sed 's/,//g').