Когда вы используете RHEL/Fedora/CentOS/SUSE Linux, вы иногда можете получить ошибку 'Database Disk is Malformed'. В этой статье мы узнаем, как исправить эту ошибку.
Как исправить ошибку Yum: Образ диска базы данных неправильно сформирован
Yum - это менеджер пакетов по умолчанию для систем RHEL/CentOS/SUSE/Fedora, который позволяет загружать, устанавливать, обновлять и удалять пакеты в вашей системе. Начиная с версии yum 3.2.26, он хранит дополнительную информацию об установленных пакетах вашей системы в плоском файле вне rpmdatabase в /var/lib/yum/yumdb. Он известен как yumdb.
Вы можете проверить его содержимое с помощью команды ls.
1 | ls /var/lib/yum/yumdb |
Вы увидите список папок с алфавитом в качестве названия папки. В каждой из этих папок вы увидите файлы, связанные с пакетами, названия которых начинаются с буквы, соответствующей названию папки. Эти файлы содержат информацию о конкретном контексте, в котором был установлен пакет. Вы можете легко получить необходимую информацию из yumdb с помощью yum-utils.
1 | yum install yum-utils |
yum-utils поставляется вместе с командой yumdb, которую можно использовать для доступа к информации в базе данных yum. Вот команда для получения имени репо пакета httpd, установленного в вашей системе.
1 | yumdb get from_repo httpd |
Вы также можете использовать команду yumdb для внесения изменений в существующие файлы в базе данных yum. Вот команда для установки примечания в файлах yumdb пакетов httpd и mariadb.
1 | yumdb set note "установлен пользователем abc для установки LAMP" httpd |
Если вы хотите просмотреть всю информацию о пакете, используйте команду yumdb info. Вот команда для получения полной информации о пакете httpd, установленном в вашей системе.
1 | yumdb info httpd |
Исправление ошибки Yum: Database Disk Image is Malformed
Обычно, когда вы устанавливаете пакет с помощью Yum, вы можете получить эту ошибку. Это может быть связано с повреждением yumdb, проблемами в команде 'yum update' или во время установки пакета. Это происходит потому, что каждый раз, когда вы запускаете yum update или устанавливаете пакет с помощью yum, yumdb обновляется. Если это происходит неправильно или завершается до завершения, то это может привести к повреждению yumdb.
Чтобы исправить эту ошибку, очистите кэш базы данных, выполнив следующую команду.
1 | yum clean dbcache |
Если вышеуказанная команда по какой-то причине не сработала, попробуйте выполнить команды, перечисленные ниже.
Удалите записи в каталоге /var/cache/yum/.
1 | yum clean all |
очистить метаданные XML
1 | yum clean metadata |
очистить кэшированные файлы для базы данных
1 | yum clean dbcache |
Создать кэш.
1 | yum makecache |
Далее необходимо пересобрать базу данных RPM вашей системы, чтобы она работала как раньше.
1 2 | mv /var/lib/rpm/__db* /tmp rpm --rebuilddb |
Наконец, выполните команду yum update для обновления до последней версии.
1 | yum update |
Вот и все. На этом этапе ваша проблема должна быть решена.