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.
|