Существует альтернативный подход командной строки для получения истории установки.
Менеджер пакетов, 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')
.