Problème de base RPM avec la Mandrake 9.0

Problème de base RPM avec la Mandrake 9.0 - Débats - Linux et OS Alternatifs

Marsh Posté le 26-09-2002 à 18:27:06    

Bon j'ai installé la Mandrake 9.0 avec le premier CD d'installation. J'ai ensuite ajouté une source urpmi pour avoir accès au reste des paquets.
 
Problème, RPM me dit que je n'ai qu'un seul paquet installé :
 

# rpm -qa
XFree86-server-4.2.1-3mdk


 
Conclusion, dès que je veux installer une nouveau paquet, urpmi veut presque me réinstaller tout le système en commençant par la libc :
 

# rpm -qi glibc
package glibc is not installed


 
 
J'ai essayé de faire un rpm --rebuilddb, mais rien n'y fait.
 
Des idées ?

Reply

Marsh Posté le 26-09-2002 à 18:27:06   

Reply

Marsh Posté le 26-09-2002 à 18:49:58    

et en faisant :
 
rm -f /var/lib/rpm/__* ; rpm --rebuilddb  

Reply

Marsh Posté le 26-09-2002 à 18:59:09    

Idem.
 
DMC ?

Reply

Marsh Posté le 26-09-2002 à 20:24:14    

non, il y a une commande pour faire une fake install d'un paquetage :
 
rpm -i --justdb le_paquetage (vérifie la syntaxe)
 
et pur être sur de n'oublier aucun des paquets que tu as déjà installé, il y a un script fais par moi-même pour ça :


#!/bin/sh
#liste les rpms installables à partir des sources et copie la liste dans un fichier listerpm
 
ls *.rpm >/$HOME/listerpm
 
#lecture du fichier listerpm ligne par ligne jusqu'à la dernière ligne
 
for ligne in `cat /$HOME/listerpm`; do  
 
#pour chaque ligne (donc chaque paquetage) extraire les fichiers de
documentation qui y sont contenus et copier la liste dans listfich
 
 rpm -ql --docfiles -p "$ligne" >/$HOME/listfich
 
#tester si listfich est vide (en fait, si il n'y a pas de fichier doc dans le paquetage ;-) )
 
 if test -s /$HOME/listfich
  then
 
#si listfich n'est pas vide, lire la première ligne de listfich et vérifier que le fichier existe sur le disque
 
   if locate `head -n 1 /$HOME/listfich`
 
#si le fichier existe sur le disque, copier le nom du paquetage en cours dans listinst
 
    then echo "$ligne" >>/$HOME/listinst
 
   fi
 
#on remet ça si listfich est vide en extrayant tout les fichiers et en appliquant les mêmes options
 
  else rpm -ql -p "$ligne" >/$HOME/listfich
   if locate `head -n 1 /$HOME/listfich`
    then echo "$ligne" >>/$HOME/listinst
   fi
 fi
done
#voilà, c'est fini, ya plus qu'à vérifier si on est maniaque et à #faire un rpm -i --justdb 'listinst'


 
NB: il faut être dans le dossier où sont les RPM pour que le script fonctionne.


Message édité par Mjules le 26-09-2002 à 20:27:12

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 26-09-2002 à 21:27:20    

Merci. Je vais regarder ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed