在OS X中修改环境变量(如PATH)的正确方法是什么? html
我稍微看了一下Google,发现须要编辑三个不一样的文件: 安全
我什至没有这些文件,并且我很肯定.tcshrc是错误的,由于OS X如今使用bash。 这些变量(尤为是PATH)在哪里定义? bash
我正在运行OS X v10.5 (Leopard)。 app
虽然这里的答案不是“错误的”,但我要补充一点:对于给定用户交互运行的全部进程,请不要在OS X中进行会影响“全部进程”甚至是外壳程序以外的环境变量更改。 工具
以个人经验,在OS X上比在Windows上对全部进程的环境变量(例如PATH)进行全局更改的可能性更大。 缘由是,许多OS X应用程序和其余软件(尤为可能包括OS自己的组件)都依赖于内部的UNIX命令行工具,并假定系统随附的这些工具版本的行为,而且这样作时没必要使用绝对路径(相似的注释适用于动态加载的库和DYLD_ *环境变量)。 例如,考虑一下关于替换有关由OS X提供的诸如Python和Ruby之类的解释器版本的各类Stack Overflow问题的最高评价的回答一般是“不要这样作”。 ui
在这方面,OS X实际上与其余相似UNIX的操做系统(例如Linux,FreeBSD和Solaris)没有什么不一样。 苹果没有提供一种简单的方法来解决这个问题的最可能缘由是由于它破坏了事情 。 在某种程度上,Windows不太容易出现这些问题,这是因为两件事:(1)Windows软件不像UNIX软件那样倾向于依赖命令行工具,以及(2)Microsoft已经拥有因为存在“ DLL地狱”和由影响全部进程的更改引发的安全问题的普遍历史,所以它们已更改了Windows新版本中的动态加载行为,从而限制了诸如PATH之类的“全局”配置选项的影响。 spa
不论是否“ Lame”,若是将此类更改限制在较小的范围内,您将拥有一个更加稳定的系统。 操作系统
最高包括OS X v10.7 (Lion),您能够在如下位置进行设置: 命令行
~/.MacOSX/environment.plist
看到: code
对于终端中的PATH,您应该能够在.bash_profile
或.profile
进行设置(尽管您可能必须建立它)
对于OS X v10.8 (Mountain Lion)及更高版本, 您须要使用launchd
和launchctl
。
任何Bash启动文件~/.bashrc
, ~/.bash_profile
, ~/.profile
。 对于GUI应用程序中的环境变量,还有一个名为~/.MacOSX/environment.plist
的怪异文件。
对于单个用户修改,请使用列出的~/.profile
。 如下连接说明了Bash什么时候读取其余文件。
http://telin.ugent.be/~slippens/drupal/bashrc_and_others
若是要为gui应用程序设置环境变量,则须要〜/ .MacOSX / environment.plist文件
好吧,我不肯定/etc/paths
和~/.MacOSX/environment.plist
文件。 那些是新的。
可是,使用Bash,您应该知道.bashrc
在每次新的Shell调用时都会执行,而.bash_profile
在启动时仅执行一次。
我不知道Mac OS X多久使用一次。我认为这种区别已经随着窗口系统启动全部内容而中断。
就我的而言,我经过使用所需的全部内容建立一个.bashrc
文件,而后执行如下操做来消除混乱:
ln -s .bashrc .bash_profile