linux user group brescia

immagine del castello

Archivio della mailing list

RH 9.0: problemi con rpm

Luca Giuzzi giuzzi a lugbs.linux.it
Mer 28 Maggio 2003 13:23:29 UTC
On Wed, May 28, 2003 at 10:27:51AM +0200, Maurizio Paolini wrote:
> 
> > From: <etajfa a tin.it>
> > > rpm -vUh mplayer...
> > > rpm -vUh Xine...
> > >
> > > e vedere cosa succede.  Non vorrei ci fosse un "segmentation fault" o
> > > qualcosa del genere.
> > >
> > > mp
> >
> > indovinato!
> > e ora che faccio?
> 
> Ahi ahi... a me e' successo quando avevo una versione di rpm
> non in linea con la versione della glibc (intendo dire che
> corrispondevano a versioni diverse di redhat); se questa e' la
> tua situazione devi in qualche modo riallineare le versioni
> aggiornando uno dei due.  Notasi che a quel punto puo' succedere
> che rpm vada in segfault proprio quando vuoi aggiornare rpm :-(
> (a me era successo proprio questo) nel qual caso e' necessario
> ricorrere al CD di rescue.
> 

Esiste una altra possibilita', ma "not for the faint of heart".

Innanzi tutto bisogna vedere se funziona il programma rpm2cpio.
Se questo e' il caso, allora sei fortunato :)

ti basta andare nella dir radice ed eseguire

rpm2cpio nomepacchetto.rpm | cpio -idv

e questo dovrebbe estrarti i binari nel posto piu' opportuno...
segue reinstallazione "a dovere".


Se rpm2cpio non funziona, allora la situazione e' leggermente piu'
delicata in quanto devi estrarre l'archivio cpio a mano dal file rpm...
La soluzione migliore e' cercare la signature di un file compresso
la stringa 037 213
tagliare l'rpm in quel punto e poi darlo in pasto a 
|gzip -cd | cpio -idv

Per cercare la stringa e tagliare il file il metodo e' 
fare un 

od -c nomerpm | grep "037 213" 

il numero nella prima colonna e' l'offset (in ottale) del primo carattere
della riga, per cui a questo punto,
dopo averlo convertito in decimale basta un 

dd if=nomerpm of=file.gz bs=1 skip=offset_di_037

per ottenere il file cpio compresso.

Per concludere l'operazione adesso basta un

gzip -cd file.gz | cpio -idv


Ciao,
 lg


P.S.
 Se usate i ".deb" come pacchetti le operazioni da svolgere sono 
 un po' piu' semplici :)



Maggiori informazioni sulla lista Lug