问题描述
MacOS常用的homebrew在安装或更新qt brew install qt 时 或在运行brew upgrade 时会对所有的库进行更新。
出现如下错误:
Error: /usr/local/opt/qt is not a valid keg
原因分析
输入命令ls -ld /usr/local/opt /usr/local/opt/qt 会出现:
$ ls -ld /usr/local/opt /usr/local/opt/zlib
drwxrwxr-x 196 dyc admin 6272 3 9 16:49 /usr/local/opt
drwxr-xr-x 3 dyc admin 96 3 9 16:37 /usr/local/opt/qt
运行brew doctor 会出现有如下的警告: 但是/usr/local/opt 下的所有内容(至少现在是这样)都应该是指向Cellar 的符号链接:(在解决完之后的正确输出)
$ ls -ld /usr/local/opt /usr/local/opt/qt
drwxrwxr-x 196 dyc admin 6272 3 9 16:59 /usr/local/opt
lrwxr-xr-x 1 dyc admin 19 3 9 16:47 /usr/local/opt/qt -> ../Cellar/qt/5.11.0
解决方法
首先将/usr/local/opt/qt 文件夹下的内容进行删除(建议备份一下):
cp -r /usr/local/opt/qt /Users/dyc/
rm -r /usr/local/opt/qt
根据brew doctor 的提示,建立符号连接:
brew link --overwrite qt
可以看到上一小节最后部分的正确输出。 然后再运行安装或更新命令就可以了
brew install qt
brew upgrade
注:解决方法同样适用于zlib等库的错误。
Error: /usr/local/opt/zlib is not a valid keg
|