Bonjour,

En desinstallant sqlite avec yum, j'ai malencontreusement désinstaller rpm, up2date, yum etc. Je n'arrive pas à réinstaller rpm-4.4.1 à partir du source .tar.gz récupéré sur le site ftp://jbj.org/pub/rpm-4.4.x/. J'ai aussi essayé à partir de linux rescue en bootant sur le cd FC4 1. La encore un problème de dépendance que je ne sais pas régler (pas d'option -dbpath dans le rpm du cd). Je n'ai plus d'idée pour me tirer de ce faux pas. Merci pour votre aide.
Waouh ! Ça c'est fort ! Je comprends ton désarroi et je compatis.

J'ai une solution à te proposer, mais elle est du genre "Mac Gyver du dimanche du genre "je remplace mes fusibles qui n'arrêtent pas de sauter par du papier alu comme ça ça coupe plus"".
Mais c'est ce que je ferais en deuxième choix après une réinstallation.

Tu récupères sur ton CD d'installation le rpm suivant : rpm-4.4.1-21.i386.rpm
tu fais
$ rpm2cpio rpm-4.4.1-21.i386.rpm > rpm.cpio
puis en root :
# cpio -i < rpm.cpio
Ça installera à la main le contenu des fichiers de l'archive (le rpm du pauvre quoi)
Ç a peut ne pas marcher pour 1001 raisons :
* cpio a été désinstallé lui aussi (ou rpm2cpio)
* avec rpm tu as effacé d'autres packets nécessaires à rpm
* parce que c'est nul ?
Mais il ya un petite chance que tu récupère la commande rpm par la suite.

Mais je conseille t'attendre d'autres solutions plus heureuses avant celle-ci.
Merci pour ta réponse et ta compassion,
Je n'ai pas (ou plus) de commande rpm2cpio sur ma machine. Il va falloir trouver une autre solution.
A+
pourquoi faire compliquer quand on peux faire simple.... boot sur ton cd de fedora en mode rescue, tu aura aces a la commande rpm et reinstalle la a partir des sources. tu reboot et tu retrouve ton rpm et tu peux faire rpm -ivh yum c tout.

sinon quelqu'un a dit qu'il avaut fait fort d'effacer rpm + yum : mais c pas sa faure c'est celle de yum qui fait n'importe quoi !
effectivement c'est drolement plus simple ! 🙂
@pitchbull: non, yum a effectué correctement son boulot, rpm utilise sqlite pour sa base de donnée, si tu n'es pas convaincu, essaie de voir ce que te renvoie un 'rpm -q --requires rpm'
C'est pas vraiment la faute de Philou2 (il ne savait probablement pas), ni celle de yum. Une solution contre ce genre d'erreur serait de lister dans un fichier de configuration les paquets absolument indispensables au système (ça existe peut-être déjà?) afin que par défaut rpm refuse de les supprimer.
@pitchbull: merci pour ta réponse. Je suis loin d'être expert et je n'arrive pas à mettre en oeuvre ta proposition. J'arrive bien au shell dans linux recue, mais ensuite ca se complique. Faut il passer en chroot /mnt/sysimage ?

Pourrais tu me donner la commande complète qu'il faut lancer : rpm ....

Encore merci
Je viens de tester les commandes suivantes

rpm --root /mnt/sysimage/var/lib/rpm -ivh /mnt/sysimage/home/philippe/... /rpm-4.4.1-22.i386

je me fais jeter avec un failed dependencies
/bin/bash is needed by rpm...
/bin/sh ...
/libc.so.6 ....

etc (une vingtaine de ligne que je vous épargne)
Je précise qu'il n'y a pas d'option dbpath dans le rpm du linux rescue
Voila ou j'en suis
Si /bin/bash et sh ne sont même plus sur ton Linux, c'est vraiment strange. Est-ce qu'il y aurait pas un problème au niveau de ton path ? Qu'est-ce que donne :
echo $PATH
Sous fc4, la commande donne :
[philippe@portableibm ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/lib/jre/bin:/home/philippe/bin:/usr/lib/jre/bin
ce qui a l'air tout a fait correct.
On dirait que la commande rpm que je lance sous linux rescue ne trouve pas un chemin??
yum a fait son office correctement, et la seule chose qu'on puisse lui reprocher c'est de ne pas etre dummy-proof.
Vous etes libres de soumettre des patches intelligents pour yum pour palier a la stupidite et a la maladresse des gens.
Et si tu fais chroot /mnt/sysimage ... ? (Je n'ai jamais testé rpm en mode rescue donc je ne sais pas si c'est dangerous ou pas ... 😉)
pour moi si tu fais un chroot tu te retrouves dans l'environnement initial donc sans commande rpm ? J'ai pas testé peux-tu nous dire ce qui ce passe derrière ton chroot si tu fais appel à la commande rpm ?
/bin/bash is needed by rpm... --> le chroot pourrait permettre de regler cela ... wait and see
Si je fais un chroot , je n'ai plus accès à la commande rpm
ouais bon pitchbull connait peut être une méthode ninja pour résoudre ce problème 🙂
Sinon il te reste toujours ma solution qui est lourde mais qui doit fonctionner.
PHILOU2=> Résumons la situation. Tu as fait un :
yum remove sqlite
Ce qui effectivement supprime les paquets "rpm" et "yum" (normale car rpm utilise sqlite qui es je le rappelle une API de gestion de base de données minimale et yum n'es qu'une macro, un meta-programme qui tourne au dessus de rpm).

remarque : c'est quand meme pas normale que "yum" se tue lui meme, "rpm" est une command eessentiel et les developpeur aurait pu au moins mettre un message d'avertissement avant de comettre l'irréparable.

bref on fait comment pour reinstallé "rpm" tel est la question.

j'ai essayé "rpm2cpio", ca amrche pas, j'ai essayé manuelement de recopier les fichiers qui constitue rpm, meme choses.

il te rste une possibilité : reinstaller fedora et selectionner "mise a jour" afin qu'il se reinstalle en conservant tes parametres et données.

D"solé de t'avoir donné faux espoire mais dans mon cas on avait effacé juste rpm et le simple fait de recopier l'executable avait resolu le soucis.
J'ai réussi à remettre en place ma commande rpm... Ouf et merci à Julien et à tout ceux qui m'ont aidé sur ce forum. La solution est la suivante, au cas ou quelqu'un se ferait prendre par la puissance destructrice de yum et d'un utilisateur pas assez vigilant...

Prérequis:
- Tous les rpm effacés sont sur le disque (disons /tmp)

1) Mode Rescue
En mode rescue ton disque commence à /mnt/sysimage
Ce qui veut dire que ta base rpm habituellement dans /var/lib/rpm se
trouve dans /mnt/sysimage/var/lib/rpm

# mkdir -p /var/lib/rpm
# ln -s /mnt/sysimage/var/lib/rpm /var/lib/rpm
# rpm --root /mnt/sysimage --noscripts -ivh /mnt/sysimage/tmp/*.rpm

2) on redemarre et on reinstalle les précédents RPMs normalement pour
être sür
# rpm -Uvh --replacepkgs /tmp/*.rpm

Voila
A bientôt pour des questions plus productives!!