La situación es la siguiente. Estamos compilando en Solaris 10 el módulo de Perl DB_File. El requerimiento lógico es tener instalado BerkeleyDB en el servidor así que procedemos a ello:
# pkgadd -d db-4.7.25.NC-sol10-x86-local
Ahora procedemos a la típica compilación (Elegir el compilador correcto para Perl en Solaris) y nos encontramos con uno de estos dos errores:
cc -c -I/usr/local/include -Dbool=char -DHAS_BOOL -O2 -DVERSION=\"1.64\" -DXS_VERSION=\"1.64\" -fpic -I/usr/local/lib/perl5/i586-linux/5.00404/CORE -DmDB_Prefix_t=size_t -DmDB_Hash_t=u_int32_t DB_File.c DB_File.xs:101: db.h: No such file or directory
LD_RUN_PATH="/lib" cc -o blib/arch/auto/DB_File/DB_File.so -shared -L/usr/local/lib DB_File.o -L/usr/local/lib -ldb ld: cannot open -ldb: No such file or directory
Es raro porque el fichero db.h se encuentra en la ruta de instalación de DB. El problema es que el fichero de configuración para la compilación del módulo presupone una ruta estándar que en este caso no se cumple. Así que modificamos dicho fichero de esta forma:
Antes (config.in):
INCLUDE = /usr/local/BerkeleyDB/include LIB = /usr/local/BerkeleyDB/lib
Por la ruta donde se encuentre, en mi caso /usr/local/BerkeleyDB.4.7/include/db.h:
INCLUDE = /usr/local/BerkeleyDB.4.7/include LIB = /usr/local/BerkeleyDB.4.7/lib
Y a compilar.