【猫猫教程】#1 升级macOS Sierra后修复brew可能存在的问题

说明:猫猫教程系列就是非正统的猫咪教程。

今天Apple发布了macOS Sierra (10.12),升级过程非常顺利,只是安装以后brew出现了点小问题。Homebrew现在已经正式支持Sierra,所以更新之后并不会产生破坏系统的问题,只需要几步就能修复,所以请放心更新。

1./usr/local 权限问题

升级Sierra之后运行brew update有可能会报/usr/local无法写入,这是由于/usr/local在更新之后,这个目录所有者变成了root。修复办法:

1
sudo chown $(whoami):admin /usr/local

注意,这里不需要-R因为目录里面的文件权限并没有改变。

原本Homebrew把/usr/local作为它的主目录,但是运行brew update更新之后,主目录迁移到了/usr/local/Homebrew,所以之后就不需要/usr/local的权限了。把权限改回来:

1
sudo chown root:wheel /usr/local

2.升级后符号链接问题

所有brew安装的可执行文件和动态链接库都以符号链接(Symlink)形式存储在可执行路径(PATH)下。升级后有些系统库发生了改变,导致需要重新进行链接。

brew doctor会输出所有需要重新链接的软件包。复制这些软件包名放到一个文本文件里,例如~/formulas.txt:

1
2
3
4
5
6
android-platform-tools
ant
aria2
autoconf
automake
...

运行一个for语句让它们全部重新链接:

1
2
3
4
for PKG in $(<~/formulas.txt)
do
brew link --overwrite $PKG
done

完成之后,清理没用的链接:

1
brew prune

3.其他问题

升级Sierra之后,确实极少数安装包会不兼容。请参阅具体的安装包升级帮助。

brew upgrade之前,可以运行brew doctor,剩下的问题都会列出并且给予解决方法。所有问题都解决了以后,就可以放心brew upgrade啦!