2015-10-22 4 views
4

я столкнулся следующее сообщение об ошибке при попытке запустить скрипт на языке Perl, который использует DBI после обновления до Эля Капитана (типичный!):El Capitan Perl DBD небезопасного использование относительного пути

install_driver(mysql) failed: Can't load '/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib 
Referenced from: /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle 
Reason: unsafe use of relative rpath libmysqlclient.18.dylib in /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle with restricted binary at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194. 

Осмотрев решение размещенного на аналогичная проблема в python here Я опубликовал одно и то же решение для Perl ниже.

ответ

3

Защита целостности системы El Capitan защищает программы в защищенных местах (в данном случае/usr) от вызова общей библиотеки, которая использует относительную ссылку на другую разделяемую библиотеку. Следующие решили для меня. Обратите внимание: мой mysql устанавливается через варево.

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/Cellar/mysql/5.6.26/lib/libmysqlclient.18.dylib /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle 
0

Вы также можете установить mysql или его альтернативный мариадб с открытым исходным кодом с помощью инструмента «варить». Это позволяет избежать предоставления вышеуказанного вопроса на Эль Капитане

$ brew install mysql 

или

$ brew install mariadb 

Вы можете найти квас в http://brew.sh/

Смежные вопросы