Dalam skrip shell yang digunakan untuk pengujian unit dengan pustaka dinamis dalam direktori selain dari @rpath biasa, saya sebelumnya telah dapat mengatur DYLD_FALLBACK_LIBRARY_PATH untuk mengatur direktori yang berisi pustaka. Di bawah 10.11.1, bash tampaknya mengabaikan upaya untuk mengatur variabel lingkungan ini:
$ sh -x testscript.sh
+ DYLD_FALLBACK_LIBRARY_PATH=/Users/something/testinglibs
+ export DYLD_FALLBACK_LIBRARY_PATH
+ exec printenv
dan DYLD_FALLBACK_LIBRARY_PATH tidak ada dalam output printenv.
Apakah ini peretasan terkait keamanan di shell 10.11? Saya belum dapat menemukan perubahan ini didokumentasikan di halaman manual atau online.
Jawaban:
Ini adalah Perlindungan Integritas Sistem yang diperkenalkan di El Capitan
Dokumentasi dalam hal ini dari Apple
Pada dasarnya setiap executable OS X yang disediakan Apple dilindungi. dan (dari dokumen sebelumnya)
Dalam hal ini sh dilindungi
sumber
make check
di El Capitan ketika lib bersama dibutuhkan?