Bootstrap

mac使用brew安装软件失败的通用解决方法

使用mac的brew安装软件,有时会出现安装失败,或显示安装成功,但不能正常使用的情况。

例如安装php56-redis扩展,显示安装成功,重启后查看phpinfo看不到redis扩展信息。

命令行执行php有以下错误

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-redis/redis.so' - dlopen(/usr/local/opt/php56-redis/redis.so, 9): Symbol not found: _basic_globals
  Referenced from: /usr/local/opt/php56-redis/redis.so
  Expected in: flat namespace
 in /usr/local/opt/php56-redis/redis.so in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-redis/redis.so' - dlopen(/usr/local/opt/php56-redis/redis.so, 9): Symbol not found: _basic_globals
  Referenced from: /usr/local/opt/php56-redis/redis.so
  Expected in: flat namespace
 in /usr/local/opt/php56-redis/redis.so in Unknown on line 0

估计是php编译的版本不兼容导致

解决方法:在安装命令中加入参数

--build-from-source

这个参数表示从源开始编译,默认会采用bottle方式安装,bottle方式就是安装已编译好的二进制包

brew install php56-redis --build-from-source



其他软件,例如nginx安装出现问题,都可以使用此方法解决。

brew install nginx --build-from-source
;