rpm i glibc

Artur Frysiak wiget w pld.org.pl
Pon, 21 Paź 2002, 10:18:53 CEST


On Sun, Oct 20, 2002 at 06:53:31PM +0200, Jakub Bogusz wrote:
> On Sat, Oct 19, 2002 at 05:57:18PM +0200, Michal Moskal wrote:
> 
> > b) perl -p -i -e 's/_nss/_foo/g; s/libnss/libFOO/g' program.static
> 
> A takiego, na /bin/rpm nie pomogło. Nie mam pojęcia w jaki sposób, ale
> i tak znalazł sobie to libnss_files.so.2 w wiadomym celu (SEGV).
> Dopiero po s/nsswitch.conf/foowitch.conf/ i s/files/filez/ w paru miejscach
> binarki (w domyślnej konfiguracji nss) przestał.

Na libc-alpha podawano też inny workaround:
LD_RUN_PATH=/katalog/ze/starymi/libnss/ rpm
(albo LD_LIBRARY_PATH ... nie pamiętam).
Nie sprawdzałem, bo sobie co potrzebne przebudowałem.

> 
> Do tego statyczne biblioteki są jakieś niekompatybilne (db-static,
> popt-static i bzip2-static zbudowane przez upgradem miały unresolved symbol
> __ctype_b).
> A nowe biblioteki dynamiczne już wymagają glibca 2.3.

Niestety :( na dodatek jest to dość upierpliwe bo nie ma tego jak szybko
wyłapać.


> 
> > po upgrejdzie;
> > 
> > cd /var/lib
> > tar cf - rpm | gzip > rpm.tgz # backup
> > cd rpm
> > ls | grep -v Packages | xargs rm
> > rpm --rebuilddb
> 
> Natomiast efektu z błędami db4 przed przebudową bazy nie zauważyłem
> (razem z rpm-em 4.0.4->4.1 upgradowałem db 4.0.14->4.1.24).
> 
> Za to zauważyłem, że po -U/-e zostają jakieś śmieci w /var/lib/rpm
> (pliki __db.00[123]).

Te pliki __db.??? są potrzebne BerkeleyDB do lockowania dostępu do bazy
i chyba jeszcze czegoś tam.
Przed ich usunięciem lepiej jest upewnić się, że nic nie ma otwartej
bazy rpma.

Na deadlocki polecam:
db_deadlock -v -h /var/lib/rpm
lub mocniejsze:
db_recover -v -h /var/lib/rpm
i najmocniejsze:
rm -f /var/lib/rpm/__db.???

Pozdrawiam
-- 
Artur Frysiak
http://www.pld-linux.org/



Więcej informacji o liście dyskusyjnej pld-devel-pl