Le Lundi 17 F�vrier 2003 16:00, Tuxedosam a �crit :

> Le grisbi nouveau est arriv�. Ravi, je t�l�charge le rpm.
> Mais l� tout se g�te. Je fais un clic droit, rpmdrake me demande le mot de
> passe root, puis .................................................. plus
> rien.
> Qu'� cel� ne tienne, je reprend la bonne vieille m�thode : rpm -Uvh
> grisbi.... Et l�, je re�ois le message suivant :
>
> [root@localhost tmp]# rpm -Uvh grisbi-0.4.0-1gsb.i686.rpm
> rpmdb: region error detected; run recovery.
> error: db4 error(-30981) from dbenv->open: DB_RUNRECOVERY: Fatal error, run
> database recovery
> error: cannot open Packages index using db3 -  (-30981)
> error: cannot open Packages database in /var/lib/rpm
>
> Ah, me dis-je, je vais refaire la base de donn�es, mais, pas mieux :-(

> Si �a inspire quelqu'un..
Oui, moi: j'ai eu une salet� similaire il y a quelques mois et j'avais r�ussi 
en m'en sortir: je te fais passer une copie des mails � ce sujet. Bonne 
chance.

***********************************************************
Ben, v'l� aut' chose. Sur Mdk 8.2, j'ai voulu installer un paquetage...... 
Plus g�nant, c'est le rpm qui est dans les choux: (sous root), rpm -qa se 
bloque en plein milieu et ne me rend pas la main. (sous claude) c'est moins 
mauvais, il me rend la main apr�s avoir dit "Erreur de segmentation"
**********
> rpm --rebuilddb
> rpm -e --force (avec precautions...)
D'accord. Est-ce que quelqu'un pourrait me dire si j'ai bon l�?
Si j'ai bien compris info rpm, il faut reconstruire la base de donn�es avec 
cette commande:
rpm --rebuilddb ou en faire une nouvelle avec 
rpm --initdb --dbpath <chemin_database>? 
Le derni�re cas me semblerait plus prudent (du moins dans un premier temps) 
Mais ensuite quand on veut utiliser la commande rpm avec l'autre base de 
donn�es, il faudrait faire rpm 
-i  --dbpath <chemin_database>
Si quelqu'un pouvait confirmer avant que je n'aggrave mon cas.
Ah oui, une derni�re chose: la base de donn�es par d�faut serait
/var/lib/rpm/
***********************
J'essaierai de prendre une copie compl�te au cas o� ...
  cp -a /var/lib/rpm /var/lib/rpm-save
puis de suivre les instructions l�:
  http://www.rpm.org/hintskinks/repairdb/
et vraiment en d�sespoir de cause:
http://www.informatimago.com/linux/rpm-rebuilddb
**********************
'soir.
Bon, j'ai regard�  sur l'URL (en anglais, donc je d�taille en fran�ais, �a 
peut servir pour les non anglophones) que tu m'as indiqu� et 
http://www.rpm.org/hintskinks/repairdb/ et j'ai trouv� quel premi�re chose � 
faire �tait:
rm -f /var/lib/rpm/__db*
Or, il me semble bien avoir vu __db2 et __db3 dans ce rep. Il n'y est plus. 
P� parce que j'ai tent� (r�ussi) de d�sinstaller (partiellement) le paquetage 
fautif avec gnorpm (avec quand m�me un message d'erreur disant que la 
database avait un pb). depuis je n'ai plus de segmentation fault quand je 
fais rpm -qa, mais j'ai cette ligne:
error: rpmdb: damaged header instance #746 retrieved, skipping.

Il est dit ensuite que tout ce qui a besoin d'�tre r�par� ce trouve dans 
/var/lib/rpm/Packages
Je continue donc � suivre les conseils en faisant une sauvegarde de 
/var/lib/rpm:
cd /var/lib
tar czvf /tmp/rpmdb.tar.gz rpm

(J'aurai pu faire cp -a /var/lib/rpm /var/lib/rpm-save)

Je me lance ensuite dans une v�rification avec:

#cd /var/lib/rpm
#db_verify Packages
db_verify: Overflow item incomplete on page 5354
db_verify: DB->verify: Packages: DB_VERIFY_BAD: Database verification failed

Visiblement, �a foire. Donc, je renomme mon Packages (on n'est jamais trop 
prudent, n'est-ce pas?)
#mv Packages Packages-ORIG

Ensuite je fais une manip qui est sens� r�parer (je croise les doigts)
# db_dump Packages-ORIG | db_load Packages

Ensuite, on me dit de lire toutes les en-tetes en faisant (Read all the 
headers in Packages by doing)
rpm -qa et de v�rifier s'il y a un segfault

Visiblement, il n'y en a pas. Un petit rpm -qa | grep seg et un rpm -qa | 
grep error me le confirme.

Donc, �a a l'air bon.

A la fin, ils recommande de faire un rpm --rebuilddb
Je le fais (tant que j'y suis j'essaye d'abord la commande de Michel 
#cp -a /var/lib/rpm /var/lib/rpm-save)
# rpm --rebuilddb
#rpm -qa      --> �a marche
Une petite v�rification pour v�rifier
diff -r /var/lib/rpm /var/lib/rpm-save/
Binary files /var/lib/rpm/.... /var/lib/rpm-save/... differ
Comme ce sont des binaires, impossible d'avoir le d�tail, mais visiblement le 
rpm --rebuilddb �tait n�cessaire.
A premi�re vue, tout a l'air de fonctionner. Un grand merci (un de plus) 
Michel et � la prochaine :)

PS: Sinon, la suite est l�, mais j'ai pas eu besoin (le temps d'essayer):
http://www.informatimago.com/linux/rpm-rebuilddb

C'est dans le cas o� les commandes suivantes ne fonctionnent pas:
# rpm -q -a
     failed to open //var/lib/rpm/packages.rpm

      rpmQuery: rpmdbOpen() failed
     [root@hermes pascal]# rpm --rebuilddb
     failed to open //var/lib/rpm/packages.rpm

     [root@hermes pascal]# rpm --initdb
     [root@hermes pascal]# rpm -q -a
     failed to open //var/lib/rpm/packages.rpm

     rpmQuery: rpmdbOpen() failed
**********************************************************
-- 
[EMAIL PROTECTED]                  http://astuce.linux.free.fr
Veuillez ne pas me joindre de textes aux formats Word ou PowerPoint, mais 
plut�t aux formats �html�, �pdf�, �rtf� ou �txt�. Merci.
Cf: http://www.fsf.org/philosophy/no-word-attachments.fr.html

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Répondre à