跳到主要内容

· 阅读需 4 分钟

一直以来都比较头痛 Linux/MacOS 下的 PATH 环境变量的设置,因为太过于自由了,不像 windows 里有一个固定的位置去修改,最多分出了一个用户环境变量和系统环境变量的区别。

而在 MacOS, PATH 环境变量到处都是,像这些:

  • ~/.bashrc
  • ~/.zshrc
  • ~/.zshrc
  • ~/.zprofile
  • ~/.zshenv
  • /etc/profile
  • /etc/paths

从每个用户的 shell 配置,到系统的全局配置,每一个文件里写一句 export PATH = xxxx:$PATH 都能改一改 PATH。

在这么自由的情况下,人人都有自己独特的修改环境变量的操作,有些人的脚本喜欢把自己的 PATH 加在前面,有的喜欢加在后面,MacOS 自带了 ruby,如果自己在 homebrew 里又装个更新版本的 ruby,很容易因为环境变量的顺序问题而无法直接使用 ruby。

有些手动添加的环境变量还带有版本号,如果有一天升级了软件,还会出现环境变量无效的问题。

另外环境变量里其实是可以写相对路径的,例如 ~/.yarn/bin,假如此时还有一个 /Users/xxxx/.yarn/bin,它们看上去不一样,实际上还是指向的同一个路径,重复无用的查找也会降低命令执行的速度。

简直不要太烦