En los scripts de shell utilizados para pruebas unitarias con bibliotecas dinámicas en un directorio que no sea el típico @rpath, anteriormente pude configurar DYLD_FALLBACK_LIBRARY_PATH para configurar el directorio que contiene las bibliotecas. En 10.11.1, bash parece ignorar los intentos de establecer esta variable de entorno:
$ sh -x testscript.sh
+ DYLD_FALLBACK_LIBRARY_PATH=/Users/something/testinglibs
+ export DYLD_FALLBACK_LIBRARY_PATH
+ exec printenv
y DYLD_FALLBACK_LIBRARY_PATH no está presente en la salida de printenv.
¿Es este un truco relacionado con la seguridad en el shell de 10.11? No he podido encontrar este cambio documentado en las páginas man o en línea.
Esta es la Protección de integridad del sistema introducida en El Capitan
La documentación está en esto de Apple
Básicamente, todos los ejecutables de OS X proporcionados por Apple están protegidos. y (de un documento anterior)
Generar procesos secundarios de procesos restringidos por System Integrity Protection, como iniciar un proceso auxiliar en un paquete con NSTask o llamar al comando exec(2), restablece los puertos especiales de Mach de ese proceso secundario. Todas las variables de entorno del vinculador dinámico (dyld), como DYLD_LIBRARY_PATH, se eliminan al iniciar procesos protegidos.
En este caso sh está protegido
make check
en El Capitán cuando se necesitan bibliotecas compartidas?
Saaru Lindestøkke
Chico