dnf update не работает в CentOS

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

Не удается выполнить команду dnf update от имени root в CentOS8. Произошла следующая ошибка,

Не удалось открыть файл журнала: /var/log/hawkey.log

Проверьте размер раздела /Var/log, он может быть заполнен, поэтому dnf не может записывать новые журналы

Я столкнулся с той же проблемой, сегодня, следуя ответу @mohaa8844, я обнаружил, что место на диске было заполнено.
Вы можете проверить место на диске, используя: df -hT
-hЧитаемый человеком
-TПоказать тип файловой системы

В моем случае:

[root@myhost dir]# df -hT
Файловая система              Тип      Размер Использовано Доступно Использ. % Смонтировано на
devtmpfs                    devtmpfs  4.0M       0       4.0M   0% /dev
tmpfs                       tmpfs     7.7G       0       7.7G   0% /dev/shm
tmpfs                       tmpfs     3.1G    324M     2.8G  11% /run
/dev/mapper/almalinux-root  xfs       9.4G    123M     9.2G   2% /
/dev/mapper/almalinux-usr   xfs       9.4G   2.6G     6.8G  28% /usr
/dev/sda1                   xfs       1.9G    253M     1.7G  14% /boot
/dev/mapper/almalinux-tmp   xfs       9.4G     99M     9.3G   2% /tmp
/dev/mapper/almalinux-data  xfs     280G   2.0G    278G   1% /data
/dev/mapper/almalinux-var   xfs       9.4G    386M     9.0G   5% /var
/dev/mapper/almalinux-opt   xfs       9.4G    291M     9.1G   4% /opt
/dev/mapper/almalinux-log   xfs       4.7G     66M     4.6G   2% /log
/dev/mapper/almalinux-home  xfs       4.7G     66M     4.6G   2% /home
/dev/mapper/almalinux-var_log xfs     9.4G   9.4G     20K 100% /var/log
tmpfs                       tmpfs     1.6G       0       1.6G   0% /run/user/1001

Если вы внимательно посмотрите, каталог /var/log смонтирован на разделе /dev/mapper/almalinux-var_log, и он переполнен.

Очистка данных внутри раздела решила мою проблему.

Вы можете использовать команду du, чтобы выяснить, какие из каталогов внутри /var/log занимают место. Например: du -sh *
-sИтог
-hЧитаемый человеком

[root@myhost pcp]# du -sh *
4.0K    NOTICES
60K     pmcd
0       pmfind
4.0K    pmie
9.2G    pmlogger
0       pmproxy
0       sa

В моем случае /var/log/pcp занимал много места.

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

Решение проблемы с обновлением DNF в CentOS 8

Проблема с выполнением команды dnf update в системе CentOS 8 может быть связана с нехваткой места на диске, особенно в разделе, где хранятся журналы, что приводит к ошибке:

Failed to open log file: /var/log/hawkey.log

Понимание проблемы

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

Шаги для диагностики и решения проблемы

  1. Проверка места на диске

    Сначала проверьте текущее состояние дискового пространства с помощью команды:

    df -hT

    Ваша команда должна показать, сколько места занято и сколько доступно на разных файловых системах. Обратите внимание на строку для /var/log, которая в вашем случае показывает следующее:

    /dev/mapper/almalinux-var_log xfs  9.4G  9.4G   20K 100% /var/log

    Это указывает на полное заполнение раздела /var/log.

  2. Нахождение крупных файлов и директорий

    Для определения того, какие файлы или директории занимают больше всего пространства, используйте команду du:

    du -sh /var/log/*

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

    Например:

    4.0K    NOTICES
    60K     pmcd
    0       pmfind
    4.0K    pmie
    9.2G    pmlogger
    0       pmproxy
    0       sa

    В вашем случае видно, что директория pcp, особенно файл pmlogger, занимает больше всего пространства.

  3. Очистка ненужных файлов

    Рекомендуется очистить ненужные журналы, чтобы освободить место. В CentOS вы можете использовать следующую команду для удаления или архивации старых логов:

    journalctl --vacuum-time=2weeks

    Эта команда удалит журналы старше двух недель. Если вы хотите избавиться от всех логов в определённой директории, вы можете использовать:

    rm -rf /var/log/pcp/*

    Перед удалением убедитесь, что в удаляемых файлах нет критически важной информации.

Заключение

После очистки пространства на диске попробуйте снова выполнить:

dnf update

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

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

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