Hier, j'ai commence a tester certains services sur Amazon Linux 2 propulse par le cloud Amazon Web Services. Pour une raison quelconque, mon gestionnaire de paquets yum est casse et quand j'ai commence a mettre a jour ma base de donnees yum, j'ai eu une erreur concernant rpmdb open failed. Vous pouvez voir mon erreur ci-dessous. Si vous utilisez CentOS 7 ou une autre distribution Linux utilisant yum comme gestionnaire de paquets, vous pouvez aussi continuer a lire.

error: rpmdb: BDB0113 Thread/process 18275/140171317404864 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

J'ai decide de deplacer tous les paquets de la base de donnees rpm vers le repertoire /tmp.

sudo mv /var/lib/rpm/__db* /tmp

Apres ce deplacement, yum devrait etre completement nettoye. Je lance "yum clean all" pour nettoyer ma base de donnees yum.

sudo yum clean all

Apres le processus de nettoyage, yum m'a dit que le nettoyage etait termine.

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Repository elastic-7.x is listed more than once in the configuration
Bad id for repo: root@ip-11-12-30-149 yum.repos.d, byte = @ 4
Cleaning repos: amzn2-core amzn2extra-epel elastic-7.x epel treasuredata
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos

J'ai croise les doigts et essaye de mettre a jour ma base de donnees yum avec les dernieres versions des paquets. Pour cela, je lance la commande "sudo yum update".

sudo yum update

Maintenant, yum fonctionne a nouveau parfaitement !

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Repository elastic-7.x is listed more than once in the configuration
Bad id for repo: root@ip-11-12-30-149 yum.repos.d, byte = @ 4
amzn2-core                                                                      | 2.4 kB  00:00:00
amzn2extra-epel                                                                 | 1.3 kB  00:00:00
elastic-7.x                                                                     | 1.3 kB  00:00:00
epel/x86_64/metalink                                                            |  21 kB  00:00:00
epel                                                                            | 4.7 kB  00:00:00
treasuredata                                                                    | 2.9 kB  00:00:00
(1/9): amzn2-core/2/x86_64/group_gz                                             | 2.5 kB  00:00:00
(2/9): amzn2-core/2/x86_64/updateinfo                                           | 200 kB  00:00:00
...
elastic-7.x                                                                                315/315
192 packages excluded due to repository priority protections
No packages marked for update

Si vous avez des problemes de rpmdb avec votre yum, vous pouvez facilement suivre les memes etapes et reparer votre gestionnaire de paquets en une minute.