升级MacOS

我从OS X 10.10升级到macOS 10.12. 踩了大坑.

首先一些软件出现兼容性问题, 必须升级, 如:

  • 清歌五笔输出的是繁体
  • 网易云音乐无法看到歌曲列表

另外, 因为Mac系统的升级会导致一些系统偏好设置丢失, 结果影响了终端设置:

  • vi 命令报错
  • ll 命令失效
  • Item2下的shell及Vim的颜色配置丢失

所以说, 这给了我一个很好的教训: 升级前, 要做好系统备份.

vi命令报错

vi命令时报下面的错

1
2
3
Error detected while processing /Users/levy/.vimrc:
line 15:
E185: Cannot find color scheme 'Tomorrow'

Tomorrow皮肤是自定义的配色方案, 并非Vim默认的, 而系统更新后, 需要重新引入相关文件. 解决方案为:

  • 禁用Rootless
  • 执行以下命令:
    1
    2
    3
    # 先进入皮肤文件所在目录
    cd ~/theme/tomorrow-theme/vim/colors
    sudo cp *.vim /usr/share/vim/vim74/colors
    注意vim的版本, macOS 10.12自带的是vim 7.4, 所以目录为vim74

    当然也可以采取另一个解决方案, 就是修改~/.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
    3
    if [ "${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

参考资料

Fork me on GitHub