Ieri, ho iniziato a testare alcuni servizi su Amazon Linux 2 in esecuzione su cloud Amazon Web Services. Per qualche motivo, il mio package manager yum si è rotto e quando ho iniziato ad aggiornare il mio database yum, ho ricevuto un errore su rpmdb open failed. Puoi vedere il mio errore qui sotto. Se stai eseguendo CentOS7 o un'altra distribuzione Linux che utilizza il package manager yum, puoi anche continuare a leggere.

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

Ho deciso di spostare tutti i pacchetti del database rpm nella directory /tmp.

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

Dopo questo spostamento, yum dovrebbe essere completamente pulito. Eseguo "yum clean all" per pulire il mio database yum.

sudo yum clean all

Dopo il processo di pulizia, yum mi ha detto che la pulizia è stata completata.

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

Ho incrociato le dita e ho provato ad aggiornare il mio database yum con le ultime versioni dei pacchetti. Per questo; eseguo il comando "sudo yum update".

sudo yum update

Ora, yum funziona di nuovo perfettamente!

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
(3/9): amzn2extra-epel/2/x86_64/primary_db                                      | 1.8 kB  00:00:00
(4/9): elastic-7.x/primary                                                      | 115 kB  00:00:00
(5/9): epel/x86_64/group_gz                                                     |  95 kB  00:00:00
(6/9): epel/x86_64/updateinfo                                                   | 1.0 MB  00:00:00
(7/9): epel/x86_64/primary_db                                                   | 6.8 MB  00:00:00
(8/9): amzn2-core/2/x86_64/primary_db                                           |  39 MB  00:00:00
(9/9): treasuredata/2/x86_64/primary_db                                         |  15 kB  00:00:00
elastic-7.x                                                                                315/315
192 packages excluded due to repository priority protections
No packages marked for update

Se hai problemi di rpmdb con il tuo yum, puoi facilmente seguire gli stessi passaggi e riparare il tuo package manager in un minuto.