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
|