[MANDRIVA] pb base de donnée RPM

Résolu
Bonjour,

voici le message que j'obtiens en voulant installer telllico..
pouvez vous m'orienter pour solutionner le problème
"
[b17@localhost ~]$ su
Mot de passe :
[root@localhost b17]# urpmi tellico
rpmdb: PANIC: fatal region error detected; run recovery
erreur: erreur db4(-30974) de dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
erreur: ne peut ouvrir l'index Packages en utilisant db3 - (-30974)
erreur: impossible d'ouvrir la base de données Package dans /var/lib/rpm
impossible d'ouvrir la base de donnée rpm
[root@localhost b17]# drakconf
[root@localhost b17]# rpmdb: PANIC: fatal region error detected; run recovery
erreur: erreur db4(-30974) de dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
erreur: ne peut ouvrir l'index Packages en utilisant db3 - (-30974)
erreur: impossible d'ouvrir la base de données Package dans /var/lib/rpm
Couldn't open RPM DB at /usr/lib/perl5/vendor_perl/5.8.8/Rpmdrake/pkg.pm line 157.

[root@localhost b17]#
"
Configuration: Linux Mandriva
Firefox 2.0.0.13

15 réponses

  1. je t'avouerai que je n'ai pas compris tout ce que j'ai fait....mais apparament cela n'a rien changé, du coup je mets l'ensemble de ce qu'il y a dans la console.

    merci pour l'aide.

    [b17@localhost ~]$ su
    Mot de passe :
    [root@localhost b17]# urpmi tellico
    rpmdb: PANIC: fatal region error detected; run recovery
    erreur: erreur db4(-30974) de dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
    erreur: ne peut ouvrir l'index Packages en utilisant db3 - (-30974)
    erreur: impossible d'ouvrir la base de données Package dans /var/lib/rpm
    impossible d'ouvrir la base de donnée rpm
    [root@localhost b17]# drakconf
    [root@localhost b17]# rpmdb: PANIC: fatal region error detected; run recovery
    erreur: erreur db4(-30974) de dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
    erreur: ne peut ouvrir l'index Packages en utilisant db3 - (-30974)
    erreur: impossible d'ouvrir la base de données Package dans /var/lib/rpm
    Couldn't open RPM DB at /usr/lib/perl5/vendor_perl/5.8.8/Rpmdrake/pkg.pm line 157.

    [root@localhost b17]#
    [root@localhost b17]# rm -f /var/lib/rpm/__db.00
    [root@localhost b17]# urpmi tellico
    rpmdb: PANIC: fatal region error detected; run recovery
    erreur: erreur db4(-30974) de dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
    erreur: ne peut ouvrir l'index Packages en utilisant db3 - (-30974)
    erreur: impossible d'ouvrir la base de données Package dans /var/lib/rpm
    impossible d'ouvrir la base de donnée rpm
    [root@localhost b17]# rpm -vv --rebuilddb
    D: reconstruction de la base de données de /var/lib/rpm en /var/lib/rpmrebuilddb.7513
    D: création du répertoire /var/lib/rpmrebuilddb.7513
    D: ouverture d'une vieille base de données avec dbapi 3
    D: ouverture db environnement /var/lib/rpm/Packages mpool:joinenv
    rpmdb: PANIC: fatal region error detected; run recovery
    erreur: erreur db4(-30974) de dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
    D: ouverture index db /var/lib/rpm/Packages rdonly mode=0x0
    erreur: ne peut ouvrir l'index Packages en utilisant db3 - (-30974)
    D: destruction du répertoire /var/lib/rpmrebuilddb.7513
    0
    1. ok !

      A)
      peux-tu copier-coller ici le résultat de la commande suivante :
      cat /varlib/rpm/

      B) je te recolle ici la manip (il faut suivre scrupuleusement toutes les étapes dans l'ordre)

      B1) on fait une copie, au cas ou, du dossier /var/lib/rpm

      # cd /var/lib
      # tar czvf /tmp/rpmdb.tar.gz rpm


      B2) on vérifie l'intégrité :

      # cd /var/lib/rpm
      # /usr/lib/rpm/rpmdb_verify Packages

      s'il n'y a pas d'erreur on répare :

      B3) réparation
      # mv Packages Packages-ORIG
      # /usr/lib/rpm/rpmdb_dump Packages-ORIG | /usr/lib/rpm/rpmdb_load Packages


      B4) ensuite on lit les headers dans Packages en faisant :
      # rpm -qa

      s'il n'y a pas de segfault on reconstruit les indices :

      B5) reconstruction des indices
      # rpm -vv --rebuilddb

      attention cette dernière commande risque d'être très longue (allez prendre un café par exemple ..)

      ensuite cela devrait fonctionner à nouveau !
      0
      1. bonjour jai eu le meme probleme mais je ne comprends pas comment reparer lerreur; pourriez vous mexpliquer de nouveau
        *
        0
    2. voici ce que cela donne:

      [root@localhost rpm]# cat /varlib/rpm/
      cat: /varlib/rpm/: Aucun fichier ou répertoire de ce type

      je viens de faire les autres étapes, je te dis si cela a fonctionné,

      merci pour l'aide

      PS: bonne idée le café ;-)
      0
      1. Effectivement, ca fonctionne mieux quand on fait les choses dans l'ordre.

        j'ai reussi a installer tellico ...

        merci bequcoup
        0
        1. de rien !

          [root@localhost rpm]# cat /varlib/rpm/
          cat: /varlib/rpm/: Aucun fichier ou répertoire de ce type


          désolé c'est la commande ls -l /var/lib/rpm/

          peux-tu copier-coller le résultat quand même ?

          :-))
          0
          1. la:
            [root@localhost rpm]# ls -l /var/lib/rpm/
            total 58904
            drwxr-xr-x 2 root root 4096 mai 19 19:16 alternatives/
            -rw-r--r-- 1 root root 5091328 mai 20 18:59 Basenames
            -rw-r--r-- 1 root root 24576 mai 19 19:46 Conflictname
            -rw-r--r-- 1 root root 0 mai 20 18:58 __db.000
            -rw-r--r-- 1 root root 24576 mai 20 18:54 __db.001
            -rw-r--r-- 1 root root 139264 mai 20 18:54 __db.002
            -rw-r--r-- 1 root root 663552 mai 20 18:54 __db.003
            -rw-r--r-- 1 root root 970752 mai 20 18:59 Dirnames
            -rw-r--r-- 1 root root 5263360 mai 20 18:59 Filedigests
            -rw-r--r-- 1 root root 28672 mai 20 18:59 Group
            -rw-r--r-- 1 root root 24576 mai 20 18:59 Installtid
            -rw-r--r-- 1 root root 40960 mai 20 18:59 Name
            -rw-r--r-- 1 rpm rpm 24473600 mai 20 18:59 Packages
            -rw-r--r-- 1 rpm rpm 25464832 mai 20 18:38 Packages-ORIG
            -rw-r--r-- 1 root root 327680 mai 20 18:59 Providename
            -rw-r--r-- 1 root root 106496 mai 20 18:59 Provideversion
            -rw-r--r-- 1 root root 12288 mai 20 18:38 Pubkeys
            -rw-r--r-- 1 root root 335872 mai 20 18:59 Requirename
            -rw-r--r-- 1 root root 196608 mai 20 18:59 Requireversion
            -rw-r--r-- 1 root root 90112 mai 20 18:59 Sha1header
            -rw-r--r-- 1 root root 81920 mai 20 18:59 Sigmd5
            -rw-r--r-- 1 root root 12288 mai 20 16:29 Triggername
            [root@localhost rpm]#
            0
            1. ok ! merci !

              normalement la commande rm -f /var/lib/rpm/__db* suffit.

              les fichiers sont bien là chez toi :
              -rw-r--r-- 1 root root 0 mai 20 18:58 __db.000
              -rw-r--r-- 1 root root 24576 mai 20 18:54 __db.001
              -rw-r--r-- 1 root root 139264 mai 20 18:54 __db.002
              -rw-r--r-- 1 root root 663552 mai 20 18:54 __db.003


              si virer ces fichiers ne suffit pas, alors tu n'as plus qu'à refaire la manip B.

              :-))
              0
              1. la, je suis un peu perdu, car j'ai fait la manip ci dessus a savoir:
                ls -l /var/lib/rpm/

                puis:

                [root@localhost b17]# ls -l /var/lib/rpm/
                total 58904
                drwxr-xr-x 2 root root 4096 mai 19 19:16 alternatives/
                -rw-r--r-- 1 root root 5091328 mai 20 18:59 Basenames
                -rw-r--r-- 1 root root 24576 mai 19 19:46 Conflictname
                -rw-r--r-- 1 root root 0 mai 20 18:58 __db.000
                -rw-r--r-- 1 root root 24576 mai 20 18:54 __db.001
                -rw-r--r-- 1 root root 139264 mai 20 18:54 __db.002
                -rw-r--r-- 1 root root 663552 mai 20 18:54 __db.003
                -rw-r--r-- 1 root root 970752 mai 20 18:59 Dirnames
                -rw-r--r-- 1 root root 5263360 mai 20 18:59 Filedigests
                -rw-r--r-- 1 root root 28672 mai 20 18:59 Group
                -rw-r--r-- 1 root root 24576 mai 20 18:59 Installtid
                -rw-r--r-- 1 root root 40960 mai 20 18:59 Name
                -rw-r--r-- 1 rpm rpm 24473600 mai 20 18:59 Packages
                -rw-r--r-- 1 rpm rpm 25464832 mai 20 18:38 Packages-ORIG
                -rw-r--r-- 1 root root 327680 mai 20 18:59 Providename
                -rw-r--r-- 1 root root 106496 mai 20 18:59 Provideversion
                -rw-r--r-- 1 root root 12288 mai 20 18:38 Pubkeys
                -rw-r--r-- 1 root root 335872 mai 20 18:59 Requirename
                -rw-r--r-- 1 root root 196608 mai 20 18:59 Requireversion
                -rw-r--r-- 1 root root 90112 mai 20 18:59 Sha1header
                -rw-r--r-- 1 root root 81920 mai 20 18:59 Sigmd5
                -rw-r--r-- 1 root root 12288 mai 20 16:29 Triggername
                je vais refaire la manipulation B mais, je ne vois pas pourquoi il faut enlever ces bases de donnée. C'est parce qu'elles rentrent en conflit?
                0
                1. [root@localhost b17]# cd /var/lib
                  [root@localhost lib]# tar czvf /tmp/rpmdb.tar.gz rpm
                  rpm/
                  rpm/__db.000
                  rpm/Triggername
                  rpm/Provideversion
                  rpm/Packages-ORIG
                  rpm/Group
                  rpm/__db.002
                  rpm/__db.003
                  rpm/Requirename
                  rpm/Conflictname
                  rpm/Basenames
                  rpm/Sha1header
                  rpm/__db.001
                  rpm/Installtid
                  rpm/Name
                  rpm/Dirnames
                  rpm/Requireversion
                  rpm/alternatives/
                  rpm/alternatives/icewm
                  rpm/alternatives/icewmhint
                  rpm/alternatives/ssh-askpass
                  rpm/alternatives/man-modinfo
                  rpm/alternatives/rmmod
                  rpm/alternatives/depmod
                  rpm/alternatives/mkhybrid
                  rpm/alternatives/camera.kde.dynamic
                  rpm/alternatives/uvi
                  rpm/alternatives/gl_conf
                  rpm/alternatives/camera.gnome.dynamic
                  rpm/alternatives/man-depmod
                  rpm/alternatives/modprobe
                  rpm/alternatives/man-modprobe
                  rpm/alternatives/modinfo
                  rpm/alternatives/lsmod
                  rpm/alternatives/ooffice
                  rpm/alternatives/lpc
                  rpm/alternatives/vim
                  rpm/alternatives/gconftool
                  rpm/alternatives/bluepin
                  rpm/alternatives/lpr
                  rpm/alternatives/man-rmmod
                  rpm/alternatives/icewm-session
                  rpm/alternatives/insmod
                  rpm/alternatives/ex
                  rpm/alternatives/vi
                  rpm/alternatives/man-insmod
                  rpm/alternatives/cpp
                  rpm/alternatives/readcd
                  rpm/alternatives/cdrecord
                  rpm/alternatives/tvtuner.gnome.dynamic
                  rpm/alternatives/tvtuner.kde.dynamic
                  rpm/alternatives/view
                  rpm/alternatives/lprm
                  rpm/alternatives/bssh-askpass
                  rpm/alternatives/icewmbg
                  rpm/alternatives/lpq
                  rpm/alternatives/xvt
                  rpm/alternatives/rvi
                  rpm/alternatives/gs
                  rpm/alternatives/dvbtune
                  rpm/alternatives/mkisofs
                  rpm/alternatives/man-lsmod
                  rpm/alternatives/icesh
                  rpm/alternatives/rview
                  rpm/alternatives/rvim
                  rpm/alternatives/pinentry
                  rpm/Pubkeys
                  rpm/Packages
                  rpm/Sigmd5
                  rpm/Filedigests
                  rpm/Providename
                  [root@localhost lib]# cd /var/lib/rpm
                  [root@localhost rpm]# /usr/lib/rpm/rpmdb_verify Packages
                  [root@localhost rpm]# mv Packages Packages-ORIG
                  mv: écraser `Packages-ORIG'?y
                  [root@localhost rpm]# /usr/lib/rpm/rpmdb_dump Packages-ORIG | /usr/lib/rpm/rpmdb_load Packages rpm -qa
                  /usr/lib/rpm/rpmdb_load: invalid option -- q
                  usage: rpmdb_load [-nTV] [-c name=value] [-f file]
                  [-h home] [-P password] [-t btree | hash | recno | queue] db_file
                  usage: rpmdb_load -r lsn | fileid [-h home] [-P password] db_file
                  [root@localhost rpm]# rpm -qa
                  [root@localhost rpm]# rpm -vv --rebuilddb
                  D: reconstruction de la base de données de /var/lib/rpm en /var/lib/rpmrebuilddb.8362
                  D: création du répertoire /var/lib/rpmrebuilddb.8362
                  D: ouverture d'une vieille base de données avec dbapi 3
                  D: ouverture db environnement /var/lib/rpm/Packages mpool:joinenv
                  D: ouverture index db /var/lib/rpm/Packages rdonly mode=0x0
                  D: verrouillage index db /var/lib/rpm/Packages
                  D: ouverture d'une nouvelle base de données avec dbapi 3
                  D: ouverture db environnement /var/lib/rpmrebuilddb.8362/Packages create:mpool:joinenv
                  D: ouverture index db /var/lib/rpmrebuilddb.8362/Packages create mode=0x42
                  D: fermeture index db /var/lib/rpm/Packages
                  D: fermeture db environnement /var/lib/rpm/Packages
                  D: fermeture index db /var/lib/rpmrebuilddb.8362/Packages
                  D: fermeture db environnement /var/lib/rpmrebuilddb.8362/Packages
                  D: vérif. db index /var/lib/rpmrebuilddb.8362/Packages
                  D: destruction du répertoire
                  0
                  1. pourquoi tu recommences la manip B ????

                    de plus, dans ton dernier message, tu n'as pas tapé exactement les commandes qu'il faut !
                    tu dois revoir post<4> en suivant scrupuleusement les étapes et les commandes !

                    bon courage.
                    0
                    1. je retente l'operation et voila ce que cela donne, est ce normal? :
                      rpmdb_load: configured environment flags incompatible with existing environment
                      [root@localhost rpm]# mv Packages Packages-ORIG
                      mv: écraser `Packages-ORIG'?y
                      [root@localhost rpm]# /usr/lib/rpm/rpmdb_dump Packages-ORIG | /usr/lib/rpm/rpmdb_load Packages
                      0
                      1. rpmdb_load: configured environment flags incompatible with existing environment
                        ça ce n'est pas normal ! il faudrait que tu indiques exactement la commande tapée !

                        peux-tu redonner le résultat de la commande : ls -l /var/lib/rpm

                        merci.
                        0
                        1. bonjour,

                          j'ai trouvé une procédure plus explicite :
                          RPM DB Problems
                          http://www.ale.org/archive/ale/ale-2002-03/msg00063.html
                          0