czwartek, 3 listopada 2011

Przywrócenie do życia rpm-a z popsutymi bibliotekami w PLD

Sytuacja taka, że przestał działać rpm bo brakuje mu jednej biblioteki:

$ sudo rpm -qa
sudo: error while loading shared libraries: libldap-2.4.so.2: cannot open shared object file: No such file or directory


Można podnieść system z dowolnego LiveCD i z korzystając z zewnętrznego poldka/rpm-a (z opcją -r) zainstalować brakująca bibliotekę. Jestem jednak leniwy i naprawiam to z działającego systemu. Zaczynam od pobrania paczki z serwera:

$ wget ftp://master-ftp.pld-linux.org/dists/3.0/PLD/x86_64/RPMS/openldap-libs-2.4.26-2.x86_64.rpm

teraz trzeba przerobić rpm-a na archiwum cpio za pomocą rpm2cpio z paczki rpm-utils

$ rpm2cpio openldap-libs-2.4.26-2.x86_64.rpm > /tmp/openldap-libs-2.4.26-2.x86_64.cpio

rozpakowujemy archiwum:

$ cd /tmp
$ cpio -id < openldap-libs-2.4.26-2.x86_64.cpio

Pojawił nam się folder z bibliotekami (lib64 bo to system 64bit):

$ ls usr/lib64/
liblber-2.4.so.2.7.1 libldap-2.4.so.2.7.1 libldap_r-2.4.so.2.7.1 libslapi-2.4.so.2.7.1


Należy skopiować biblioteki i wywołać ldconfig:

# cp usr/lib64/lib* /usr/lib64/
# ldconfig -v


Pozostaje zainstalować biblotekę jak należy:

# ipoldek install openldap-libs-2.4.26-2.x86_64