本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规。大家都是程序员,不要闹得不开心。

brew是mac机上面程序猿非常常用的软件包安装方式,其中有两组命令是需要大家知晓的。分别是:

  • 第一组:brew installbrew uninstall
  • 第二组,brew linkbrew unlink

苏南大叔:以php71为例,深入理解brew link命令 - brew-link
以php71为例,深入理解brew link命令(图5-1)

不过关于第一组brew install命令,比较常用,所以大家可能会比较熟悉。后面的这组brew link命令才是本文要讲述的重点。苏南大叔将以前不久刚刚降级安装的php71为例,说明一下brew link命令。本文的模特范例是php71,这个是本文的前提事项!

预览

brew link相关命令预览:

brew link php71

或者

brew link --overwrite php71

--overwrite参数,就是强制的意思,你懂的。

苏南大叔:以php71为例,深入理解brew link命令 - brew_link_php71
以php71为例,深入理解brew link命令(图5-2)

正确的操作就到此为止,后面的都是操作失败后的补救措施。

brew link php71操作失败症状

正常情况下来说,brew link php71并不是需要主动执行的,因为在brew install php71的过程中,就已经默认执行了brew link php71。但是,由于各种各样的权限之类的问题,导致brew link php71操作是失败的。在brew install php71的过程中,就会体现为一个警告信息。

而对于实际的应用上来说,可能表现为:不能识别php命令,不能识别phpize命令,或者不能识别php-config命令。这些问题实际上是很fatal的,会导致一系列的后续错误。比如安装扩展插件识别,或者编译扩展插件失败,composer命令不能使用等问题。

指标不治本操作之识别php命令

为了识别php71的命令行,还是费了点周折的。最终是通过下面的命令成功识别的。-v成功显示php7.1的版本号。

echo 'export PATH="/usr/local/opt/php71/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php71/sbin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

苏南大叔:以php71为例,深入理解brew link命令 - bash_profile_php71
以php71为例,深入理解brew link命令(图5-3)

指标不治本操作之全面修复php,phpize,php-config

请注意:本步骤中描述的内容,治标不治本。仅作应急处理使用。下面的语句并不是推荐执行的,谨记,治标不治本。

  • 请大家看懂下面的语句在做什么之后,再执行。里面有rm -rf操作,头脑要清晰。
  • 如果您要修复的是php72等其它php版本,请注意替换相关字符。
which phpize
sudo rm -rf /usr/local/bin/phpize
which php
sudo rm -rf /usr/local/bin/php
which php-config
sudo rm -rf /usr/local/bin/php-config
sudo pkill -INT -o php-fpm
sudo ln -s /usr/local/opt/php71/bin/phpize /usr/local/bin/phpize
sudo ln -s /usr/local/opt/php71/bin/php /usr/local/bin/php
sudo ln -s /usr/local/opt/php71/bin/php-config /usr/local/bin/php-config
brew services start php71

苏南大叔:以php71为例,深入理解brew link命令 - 修复phpize等
以php71为例,深入理解brew link命令(图5-4)

brew link php71操作失败的正确补救措施

sudo chown -R $(whoami) /usr/local

更改权限后,再次重新link操作即可。

brew link php71

苏南大叔:以php71为例,深入理解brew link命令 - brew_chown
以php71为例,深入理解brew link命令(图5-5)

苏南大叔在这里解释一下:link操作失败,很可能是权限的问题。而权限问题,就需要用chown或者chmod的方式来解决。解决好权限问题之后,再重新link就可以了。就不用担心php,phpize,php-config的一系列问题了。

小结

brew link大家明白的话,那么brew unlink也就好理解了,反操作而已。对吧?更多brew相关经验文字,苏南大叔推荐您查看下面的链接:https://newsn.net/tag/brew/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。