Χθες, άρχισα να δοκιμάζω κάποιες υπηρεσίες σε Amazon Linux 2 που τροφοδοτείται από το Amazon Web Services cloud. Για κάποιο λόγο, ο package manager μου yum χάλασε και όταν άρχισα να ενημερώνω τη βάση δεδομένων yum, έλαβα ένα σφάλμα σχετικά με το rpmdb open failed. Μπορείς να δεις το σφάλμα μου παρακάτω. Αν τρέχεις CentOS 7 ή άλλη διανομή Linux που χρησιμοποιεί τον package manager yum, μπορείς επίσης να συνεχίσεις να διαβάζεις.

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

Αποφάσισα να μετακινήσω όλα τα rpm database packages στον κατάλογο /tmp.

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

Μετά από αυτή τη μετακίνηση, το yum θα πρέπει να είναι εντελώς καθαρό. Τρέχω "yum clean all" για να καθαρίσω τη βάση δεδομένων yum.

sudo yum clean all

Μετά τη διαδικασία καθαρισμού, το yum μου είπε ότι ο καθαρισμός ολοκληρώθηκε.

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

Σταύρωσα τα δάχτυλά μου και προσπάθησα να ενημερώσω τη βάση δεδομένων yum με τις τελευταίες εκδόσεις των πακέτων. Για αυτό, τρέχω την εντολή "sudo yum update".

sudo yum update

Τώρα, το yum λειτουργεί ξανά τέλεια!

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

Αν αντιμετωπίζεις προβλήματα rpmdb με το yum σου, μπορείς εύκολα να ακολουθήσεις τα ίδια βήματα και να διορθώσεις τον package manager σου σε ένα λεπτό.