libpq.so.5: cannot open shared object file: No such file or directory

El siguiente error se puede presentar al intentar ejecutar un binario de PostgreSQL, aunque es extrapolable a cualquier otro ejecutable con problemas de dependencias:

libpq.so.5: cannot open shared object file: No such file or directory

Tanto si hemos compilado a mano a partir de código fuente PostgreSQL, como si lo hemos instalado por paquete (rpm, deb, yum, apt…), lo más probable es que la líbrería que provoca el fallo sí que exista, pero el binario no la encuentra:

# ldd psql
    linux-vdso.so.1 =>  (0x00007ffcf5db2000)
    libpq.so.5 => not found
    libc.so.6 => /lib64/libc.so.6 (0x00000030a5a00000)
    /lib64/ld-linux-x86-64.so.2 (0x00000030a5200000)
[...]

Como podéis observar, al consultar las dependencias de librerías, no encuentra libpq.so.5. Si buscamos el archivo de la librería con un find, por ejemplo:

# find / -type f -name libpq.so.5

Lo más probable es que aparezca, y estará ubicada en la ruta donde hemos compilado PostgreSQL y por consiguiente almacena todas las librerías (shared libraries), ejemplo:

/usr/pgsql-9.4/lib/

La solución más sencilla es añadir esa ruta al path de librerías, LD_LIBRARY_PATH. A partir de ese momento, ldd ya encontrará la librería para los binarios de PostgreSQL y funcionarán correctamente.

export LD_LIBRARY_PATH=/usr/pgsql-9.4/lib