Dans les scripts shell utilisés pour les tests unitaires avec des bibliothèques dynamiques dans un répertoire autre que le @rpath typique, j'ai précédemment pu définir DYLD_FALLBACK_LIBRARY_PATH pour définir le répertoire contenant les bibliothèques. Sous 10.11.1, bash semble ignorer les tentatives de définir cette variable d'environnement :
$ sh -x testscript.sh
+ DYLD_FALLBACK_LIBRARY_PATH=/Users/something/testinglibs
+ export DYLD_FALLBACK_LIBRARY_PATH
+ exec printenv
et DYLD_FALLBACK_LIBRARY_PATH n'est pas présent dans la sortie de printenv.
S'agit-il d'un hack lié à la sécurité dans le shell de 10.11 ? Je n'ai pas pu trouver ce changement documenté dans les pages de manuel ou en ligne.
0 votes
Est-ce que le outil install_name_tool pourrait aider ?
2 votes
Bien sûr, install_name_tool est une solution permanente (et je l'ai effectivement scriptée pour configurer l'environnement de construction). Pour des tests rapides et du débogage dans un environnement de développement, c'est une corvée de devoir faire des copies temporaires de bibliothèques, de pirater des changements @rpath, et ensuite peut-être oublier le changement manuel. DYLD_FALLBACK_LIBRARY_PATH et DYLD_LIBRARY_PATH étaient pratiques pour ces cycles de développement/test occasionnels.