erlug
[Top] [All Lists]

Re: [Erlug] rpm e aggiornamento glibc

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] rpm e aggiornamento glibc
From: Davide Bolcioni <db_erlug@xxxxxxxx>
Date: Thu, 29 May 2003 00:18:04 +0200
Francesco Lodi ha scritto:
Ciao a tutti!!

L'altro giorno ho dovuto aggiornare le librerie glibc dalla versione 2.2 alla 2.3 per soddisfare le dipendenze di alcuni pacchetti che dovevo installare.

Dubbio: le glibc 2.3 sono quelle di RedHat 9 ? In tal caso, infatti, richiedono il threading "nuovo stile" (NPTL) il quale richiede un apposito supporto nel kernel 2.4, supporto che il kernel RedHat fornisce
per RedHat 9 ma non per RedHat 8.

Ho visto di sfuggita un trucco che consente di aggirare questo specifico
problema:

  LD_ASSUME_KERNEL=2.2.5 rpm -qa

però può darsi che:
- il tuo problema non fosse questo;
- il trucco funzioni per rpm distribuito da RedHat non per uno compilato
  a mano (ovvero senza specificare le magiche opzioni necessarie).

Da allora, ed è per questo che penso che le due cose siano collegate anche se non mi spiego perchè visto che rpm e' compilato staticamente, il comando rpm (versione 3.0.6) non funziona piu' e termina sempre con Segmentation Fault.

Qui da me rpm non è compilato staticamente, ma ciò può non essere significativo. Nota che questo potrebbe essere un caso (locking e threading) in cui un eseguibile compilato staticamente con una glibc non
funziona su un sistema con una glibc diversa - può capitare, con buona
pace di chi pensa che il link statico risolva il problema delle dipendenze.

Ho provato a risolvere il problema compilando e installando l'ultima versione di rpm (4.1) ma a questo punto:
1- non riesco a fare in modo che questo mi aggiorni il vecchio database in      
formato db1 al nuovo db3.

Stando a quanto vedo qui:

[db-prog@localhost db-prog]$ rpm -q --scripts rpm
preinstall scriptlet (using /bin/sh):
if [ -f /var/lib/rpm/packages.rpm ]; then
    echo "
You have (unsupported)
/var/lib/rpm/packages.rpm db1 format installed package headers
Please install rpm-4.0.4 first, and do
        rpm --rebuilddb
to convert your database from db1 to db3 format.
"
#    exit 1
fi
/usr/sbin/groupadd -g 37 rpm                            > /dev/null 2>&1
/usr/sbin/useradd  -r -d /var/lib/rpm -u 37 -g 37 rpm   > /dev/null 2>&1
exit 0

occorre rpm 4.0.4.

2 - in ogni caso se provo a lanciare ad esempio rpm -qa mi dice che e' impossibile aprire il database /var/local/lib/rpm/Packages

Se c'è /var/lib/rpm/packages.rpm, è un database versione 1 mentre vorrebbe
trovare quello versione 3 e si lamenta. Potresti avere un più banale
problema di percorsi: /var/local/lib/rpm non è dove RPM mette i suoi db
di solito, li trovi in /var/lib/rpm.

Una curiosità: per aggiornare glibc hai usato rpm -U e non si è lamentato, il che vuol dire che il pacchetto glibc e/o rpm è fatto con
cura anche minore del solito, oppure c'è qualcosa che non ho capito ?

Davide Bolcioni
--
There is no place like /home.


<Prev in Thread] Current Thread [Next in Thread>