Вопрос или проблема
Каждую ночь мои системы 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", где указано местоположение системных файлов. Таким образом, для проверки истории транзакций вам следует обращаться именно к этому файлу.
Как проверить наличие обновлений?
Если вас интересует, какие именно пакеты были обновлены, вы можете использовать следующие команды:
-
Проверка доступных обновлений:
dnf check-upgrade || echo "обновления доступны"
Эта команда проверит наличие обновлений, и если таковые имеются, вы получите соответствующее уведомление.
-
Проверка последней транзакции:
Для того чтобы выяснить, какие изменения происходили в системе, выполняйте:
dnf history list --reverse | tail -n1
Эта команда выведет последнюю транзакцию из истории, что поможет вам определить, были ли выполнены обновления.
Обратите внимание на эффективность
Ваш текущий подход к автоматизации обновлений с помощью сценария может считаться рабочим, но, возможно, стоит рассмотреть более стандартные методы. Использование встроенных возможностей команд DNF для анализа и мониторинга состояния системы — это более надежный и безопасный метод.
Заключение
Перемещение истории транзакций DNF 5 в новую директорию может вызвать некоторые неудобства, но это также предоставляет возможность использовать более продвинутые функции. Надеюсь, эта информация окажется полезной в вашей работе. Не забывайте периодически проверять документацию, так как подобные изменения могут происходить в будущем.