In Shell-Skripten, die zum Testen von Einheiten mit dynamischen Bibliotheken in einem anderen Verzeichnis als dem typischen @rpath verwendet werden, konnte ich zuvor DYLD_FALLBACK_LIBRARY_PATH festlegen, um das Verzeichnis festzulegen, das die Bibliotheken enthält. Unter 10.11.1 scheint bash Versuche zu ignorieren, diese Umgebungsvariable festzulegen:
$ sh -x testscript.sh
+ DYLD_FALLBACK_LIBRARY_PATH=/Users/something/testinglibs
+ export DYLD_FALLBACK_LIBRARY_PATH
+ exec printenv
und DYLD_FALLBACK_LIBRARY_PATH ist in der Ausgabe von printenv nicht vorhanden.
Ist dies ein sicherheitsrelevanter Hack in der Shell von 10.11? Ich konnte diese Änderung nicht in Manpages oder online dokumentieren.
Antworten:
Dies ist der in El Capitan eingeführte Systemintegritätsschutz
Die Dokumentation ist in dieser von Apple
Grundsätzlich sind alle von Apple bereitgestellten ausführbaren OS X-Dateien geschützt. und (aus einem früheren Dokument)
In diesem Fall ist sh geschützt
quelle
make check
auf El Capitan schreiben, wenn gemeinsame Bibliotheken benötigt werden?