Сохраняет ли dpkg Debian время / дату изменений пакета (например, установки / очистки)?

8

Я знаю это dpkgи dpkg-queryявляюсь хорошим инструментом для поиска пакетов, установленных в настоящее время в системе Debian. Помимо информации, записываемой в файлы /var/log/dpkg.log.*, есть ли другое место, которое позволило бы мне узнать, когда произошло изменение (т. Е. Время и дата установки пакета)?

Если предположить , что этот вопрос здесь говорит , что система управления пакетами Debian не беспокоится о хранении информации о происхождении файла DEB (а также , как он должен сделать это?) Я начинаю думать , что /var/log/dpkg.log.*это единственное место , где информация о том, когда что - то dpkgпроизошло , связанные с хранится на всех.

Может быть, кто-то может подтвердить это. Или же скажите мне, хранится ли информация о времени установки пакетов (действительно, это было бы здорово!), Где их найти (какой файл?).

humanityANDpeace
источник

Ответы:

5

/var/log/dpkg.logэто единственный файл журнала, оставленный самим dpkg. Он регистрирует, какие пакеты установлены, удалены, обновлены и т. Д. Он указывает только имя пакета, версию и действие: dpkg не знает происхождение пакетов. Указывает дату каждого действия.

Если dpkg был вызван инструментом из набора APT ( apt-get, aptitude, Synaptic, ...), действия APT регистрируются /var/log/apt/history.logи /var/log/apt/term.log. Файл apt/history.logсодержит ту же информацию, что и dpkg.log. Файл apt/term.logсодержит стенограмму запуска dpkg (сценарии до и после установки и -remove, запуск dpkg, триггеры).

Aptitude также пишет аналогичный логин /var/log/aptitude. Этот журнал содержит действия, предпринятые aptitude, независимо от того, были ли они успешными.

Обычно вы также можете определить, когда установлена ​​текущая версия пакета, проверив ctime of /var/lib/dpkg/info/$package.*. Эти файлы могут иметь более позднее время ctime, если они были изменены позднее по какой-либо причине (например, восстановлены из резервной копии). Текущая версия может быть обновлением с другой версии, этот метод не скажет вам ничего о предыдущих версиях.

Если вы устанавливаете и активируете etckeeper , то каждый раз, когда вы запускаете APT и что-то вносите/etc изменения, изменение передается на контроль версий. Когда APT выполняет фиксацию автоматически после действия, это указывает на выполненное действие (например, какие пакеты были установлены) в сообщении журнала.

Не существует инструмента, который регистрирует происхождение пакетов. Обычно с APT данный пакет всегда приходит из одного и того же источника, если только источники или их приоритеты не изменились. В тех редких случаях, когда источники или приоритеты изменились, не существует общего способа получения исторической информации о том, откуда был получен пакет, который был установлен в прошлом.

Жиль "ТАК - перестань быть злым"
источник
Ctime /var/lib/dpkg/info/файлов даже меняется при нормальной apt-get upgradeработе. После такого обновления, например, dpkg.lstctime == mtime == current-time - и dpkg.md5sums ctime> mtime. Таким образом, к сожалению, просмотр ctime не дает больше информации, чем просто просмотр mtime. С ними невозможно различить время обновления / установки пакета.
maxschlepzig
@maxschlepzig Да, я имел в виду , когда текущая версия была установлена из пакета, не тогда , когда какая - то версия была первым установлена. Я отредактирую это.
Жиль "ТАК - перестать быть злым"
3

Смотрите файлы в /var/log/apt. Файлы history.logи term.logзаписаны как apt-getи aptitude, по крайней мере. При apt-getзапуске также указывается командная строка. Вы, вероятно, хотите посмотреть history.log. Среди прочего это записывает время действия.

Так, например, раздел журнала, соответствующий установке пакета, apt-getвыглядит так:

Start-Date: 2013-09-02  00:27:25
Commandline: apt-get install unrar
Install: unrar:amd64 (4.1.4-1)
End-Date: 2013-09-02  00:27:29

Раздел журнала, соответствующий установке с использованием aptitudeвыглядит следующим образом:

Start-Date: 2013-09-02  16:39:11
Install: hello:amd64 (2.8-2)
End-Date: 2013-09-02  16:39:15

Эти примеры взяты из системы Debian amd64 wheezy.

Фахим Митха
источник