我从OS X 10.10升级到macOS 10.12. 踩了大坑.
首先一些软件出现兼容性问题, 必须升级, 如:
- 清歌五笔输出的是繁体
- 网易云音乐无法看到歌曲列表
另外, 因为Mac系统的升级会导致一些系统偏好设置丢失, 结果影响了终端设置:
- vi 命令报错
- ll 命令失效
- Item2下的shell及Vim的颜色配置丢失
所以说, 这给了我一个很好的教训: 升级前, 要做好系统备份.
vi命令报错
vi命令时报下面的错1
2
3Error detected while processing /Users/levy/.vimrc:
line 15:
E185: Cannot find color scheme 'Tomorrow'
Tomorrow皮肤是自定义的配色方案, 并非Vim默认的, 而系统更新后, 需要重新引入相关文件. 解决方案为:
- 禁用Rootless
- 执行以下命令:注意vim的版本, macOS 10.12自带的是vim 7.4, 所以目录为vim74
1
2
3# 先进入皮肤文件所在目录
cd ~/theme/tomorrow-theme/vim/colors
sudo cp *.vim /usr/share/vim/vim74/colors当然也可以采取另一个解决方案, 就是修改~/.vimrc, 换一个系统默认支持的配色方案
ll 命令失效
ll是自定义的命令, 我之前是写在/etc/bashrc里的, 系统更新后, /etc/bashrc里的设置被覆盖掉了, 因此该命令失效了. 我选择的解决方法为:
- 禁用Rootless
sudo vi /etc/bashrc
重新设置- 执行命令
sudo source /etc/bashrc
需要注意的是, Mac系统更新, /etc/bashrc会被覆盖, 但~/.bashrc是不会被修改的. 因此还可以通过修改~/.bashrc来解决问题, 这样系统再更新, 也不用做修改. 则这种方案的执行步骤如下:
- vi ~/.bashrc 自定义配置
- vi ~/.bash_profile 输入以下内容并保存
1
2
3if [ "${BASH-no}" != "no" ]; then
[ -r ~/.bashrc ] && . ~/.bashrc
fi这种方案的缺点在于新建一个shell的速度变慢了(大概0.5秒吧, 还是在我自定义配置不多的情况下). 换句话说就是, 在Item2下, ⌘+T新开一个shell, 你不能立即输入命令, 你会明显得感到一个停顿, 之后才可以输入命令. 对于追求流畅的我而言, 这种方案我不能接受
Rootless
自OS X 10.11起系统引入了Rootless, 最直接的影响是, 许多系统文件sudo后仍然没有权限修改. 下面是禁用Rootless的方法:
- 重新启动
- 出现启动画面时, 按下⌘+R键, 进入恢复模式
- 在左上角的菜单栏(menu bar)里找到终端(Terminal)
- 输入
csrutil disable
, 回车 - 再输入
reboot
重启即可
重新打开Rootless的命令为
csrutil enable