Где dnf-5 (Fedora 41) хранит свою историю транзакций?

Вопрос или проблема

Каждую ночь мои системы Fedora выполняют скрипт crontab, который делает dnf update -y. На самом деле это небольшой скрипт на Perl, который также пытается выполнить rkhunter --propupd, если это необходимо. Раньше я мог проверять временную метку на /var/lib/dnf/history.sqlite-wal, чтобы увидеть, были ли обновлены какие-либо модули, но с тех пор как я выполнил version-upgrade до F41, ни один из файлов в var/lib/dnf/ не кажется измененным.

Куда переместилась база данных истории?

/usr/lib/sysimage/libdnf5/transaction_history.sqlite (см. man dnf, в разделе “FILES”, “System State”)

В любом случае, то, что вы делаете, похоже на взлом, не так ли? Вы можете либо

  • выполнить dnf check-upgrade || echo "обновления доступны", чтобы проверить наличие обновлений перед фактическим выполнением dnf update, либо вы можете
  • выполнить dnf history list --reverse | tail -n1 и проверить, действительно ли эта строка новая.

Ответ или решение

Вопрос о местоположении истории транзакций в DNF 5 (Fedora 41) требует немного более глубокого анализа, особенно после обновления до новой версии. Ваша текущая ситуация, когда вы не можете найти журналы, подобные тем, которые находились в /var/lib/dnf/history.sqlite-wal, вполне объяснима.

Где хранится история транзакций DNF 5?

С переходом на DNF 5 файлы транзакционной истории переместились в новое расположение. Теперь история хранилась по следующему пути:

/usr/lib/sysimage/libdnf5/transaction_history.sqlite

Это изменение было зафиксировано в документации, и вы можете уточнить это в man dnf, особенно в разделе "FILES", где указано местоположение системных файлов. Таким образом, для проверки истории транзакций вам следует обращаться именно к этому файлу.

Как проверить наличие обновлений?

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

  1. Проверка доступных обновлений:

    dnf check-upgrade || echo "обновления доступны"

    Эта команда проверит наличие обновлений, и если таковые имеются, вы получите соответствующее уведомление.

  2. Проверка последней транзакции:

    Для того чтобы выяснить, какие изменения происходили в системе, выполняйте:

    dnf history list --reverse | tail -n1

    Эта команда выведет последнюю транзакцию из истории, что поможет вам определить, были ли выполнены обновления.

Обратите внимание на эффективность

Ваш текущий подход к автоматизации обновлений с помощью сценария может считаться рабочим, но, возможно, стоит рассмотреть более стандартные методы. Использование встроенных возможностей команд DNF для анализа и мониторинга состояния системы — это более надежный и безопасный метод.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...