在OS X中修改环境变量如PATH的正确方法是什么?
我看了谷歌一点,找到了三个不同的文件进行编辑:
/etc/paths ~ / . profile ~ / tcshrc
我甚至没有这些文件中的一些,我很确定.tcshrc是错误的,因为OS X现在使用bash。这些变量,特别是PATH,定义在哪里?
我运行的是OS X v10.5 (Leopard)。
在OS X中修改环境变量如PATH的正确方法是什么?
我看了谷歌一点,找到了三个不同的文件进行编辑:
/etc/paths ~ / . profile ~ / tcshrc
我甚至没有这些文件中的一些,我很确定.tcshrc是错误的,因为OS X现在使用bash。这些变量,特别是PATH,定义在哪里?
我运行的是OS X v10.5 (Leopard)。
当前回答
这里有两种类型的炮弹。
非登录:每次启动一个新的Bash副本时,.bashrc都会被重新加载 登录:.profile只有在登录或显式告诉Bash加载它并将其用作登录shell时才会被加载。
在这里,重要的是要理解在Bash中,.bashrc文件只能由交互式和非登录的shell读取,您会发现人们经常在.bash_profile中加载.bashrc以克服这一限制。
现在您已经有了基本的了解,让我们继续讨论我建议您如何设置它。
.profile:创建一个不存在的文件。把你的PATH设置放在那里。 .bashrc:如果不存在则创建。把你所有的别名和自定义方法都放进去。 .bash_profile:如果不存在则创建。把下面的东西放进去。
.bash_file:
#!/bin/bash
source ~/.profile # Get the PATH settings
source ~/.bashrc # Get Aliases and Functions
#
其他回答
我的个人实践是.bash_profile。我在这里添加路径并附加到Path变量,
GOPATH=/usr/local/go/bin/
MYSQLPATH=/usr/local/opt/mysql@5.6/bin
PATH=$PATH:$GOPATH:$MYSQLPATH
之后,我可以有个人的路径通过echo$ GOPATH, echo$MYSQLPATH或所有通过echo$ Path。
直到和包括OS X v10.7 (Lion),你可以设置它们:
~/.MacOSX/environment.plist
See:
https://developer.apple.com/legacy/library/qa/qa1067/_index.html https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/EnvironmentVars.html
对于终端中的PATH,您应该能够在.bash_profile或.profile中设置(尽管您可能必须创建它)
对于OS X v10.8 (Mountain Lion)及以上版本,您需要使用launchd和launchctl。
iOS上的所有神奇之处都是使用source和文件,在这里导出环境变量。
例如:
你可以像这样创建一个文件:
export bim=fooo
export bom=bar
保存为bimbom。Env,然后做source ./bimbom.ev。 Voilá,你有你的环境变量。
检查它们:
echo $bim
$PATH变量也受制于path_helper,它反过来利用/etc/paths文件和/etc/paths.d中的文件
更详细的描述可以在PATH和Leopard(2008-11)的其他环境问题中找到。
在Mountain Lion上,所有的/etc/paths和/etc/launchd.conf编辑都不起任何作用!
苹果的开发者论坛说:
“更改信息。.app本身的plist包含一个“lsenvirenvironment” 带有所需环境变量的字典。 ~ / .MacOSX /环境。不再支持Plist。”
所以我直接编辑了应用程序的信息。plist(右击“AppName. plist”)app”(在本例中是SourceTree),然后是“显示包内容”)。
我添加了一个新的键/字典对,称为:
<key>LSEnvironment</key>
<dict>
<key>PATH</key>
<string>/Users/flori/.rvm/gems/ruby-1.9.3-p362/bin:/Users/flori/.rvm/gems/ruby-1.9.3-p362@global/bin:/Users/flori/.rvm/rubies/ruby-1.9.3-p326/bin:/Users/flori/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:</string>
</dict>
(参见苹果的LaunchServicesKeys文档)
现在应用程序(在我的例子中是Sourcetree)使用给定的路径并使用Git 1.9.3:-)
PS:当然,您必须调整路径条目以满足您特定的路径需求。