2015-10-22 29 views
4

的我遇到了以下錯誤試圖運行,升級到埃爾卡皮坦後使用DBI一個perl腳本(典型值!):埃爾卡皮坦的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是通過brew安裝的。

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

您還可以使用「brew」工具安裝mysql或其開源替代mariadb。這樣可以避免在http://brew.sh/

在埃爾卡皮坦給上述問題

$ brew install mysql 

$ brew install mariadb 

你可以找到釀造