Solving a missing shared object problem

The following error was returned when trying to start smbd on a FreeBSD 7.0 operating system after a power failure in a failed uninterruptible power supply (UPS).

/libexec/ld-elf.so.1: shared object "libcrypt.so.15" not found, required by "libgnutls.so.26"

Assuming, that ports, that depend on libgcrypt, has to be reinstalled, the following procedure is executed. libgcrypt is a general purpose cryptographic library based on the code from GnuPG.

A tool, named portupgrade, that can perform a recursive reinstall, is installed. Before that, the ports tree is updated. Assuming, that portsnap has been used to update the ports tree before, the ports tree is updated using the update feature of portsnap.

portsnap fetch
portsnap update
cd /usr/ports/ports-mgnt/portupgrade
make install

All ports, that depend on libgcrypt, is upgraded.

portupgrade -rf libgcrypt

Unfortunately, portupgrade failed to complete due to a major version problem with libtool. This is also referred to as a version bump, that occurs because some programmers hardcode their versions, which causes critical dependancy failures. libtool is deleted and reinstalled before we try again.

pkg_info | grep libtool
pkg_delete libtool-1.5.24
cd /usr/ports/devel/libtool22
make install
portupgrade -rf libgcrypt

This time portupgrade completed with succes and the problem was solved.

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>