16 votos

No se puede establecer DYLD_FALLBACK_LIBRARY_PATH en el shell en OSX 10.11.1

En los scripts de shell se utiliza para pruebas de unidad con la dinámica de las bibliotecas en un directorio que no sea el típico @rpath, anteriormente he sido capaz de establecer DYLD_FALLBACK_LIBRARY_PATH para establecer el directorio que contiene las bibliotecas. Bajo 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 el comando printenv de la salida.

Es esta una de seguridad relacionados con el hack en 10.11 del shell? No he sido capaz de encontrar este cambio documentado en las páginas man o en línea.

12voto

yoliho Puntos 340

Esta es la Integridad del Sistema de Protección de introducir en El Capitan

La documentación es en este pdf de Apple

Básicamente cualquier Apple suministra OS X los archivos ejecutables están protegidos. y

El desove de los niños de procesos de procesos restringidos por la Integridad del Sistema de Protección, como por ejemplo el lanzamiento de un ayudante de proceso en un bundle con el NSTask o llamar a exec(2) comando, se restablece el Mach especial de puertos del proceso hijo. Cualquier enlazador dinámico (dyld) variables de entorno, tales como DYLD_LIBRARY_PATH, se purgan a la hora de lanzar los procesos protegidos.

En este caso sh está protegido

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X