在OS X中设置环境变量?
在OSX中修改环境变量(如PATH)的正确方法是什么? 我看了一下Google,找到了3个不同的文件来编辑:
我甚至没有这些文件,而且我很确定.tcshrc是错误的,因为OSX现在使用了bash。 任何人都知道这些变量,特别是PATH的定义?
编辑:我正在运行OS X 10.5
布鲁诺走上正轨。 我已经做了大量的研究,如果你想设置所有GUI应用程序中可用的变量,唯一的选择是/etc/launchd.conf
请注意,environment.plist不适用于通过Spotlight启动的应用程序。 这由史蒂夫塞克斯顿在这里记录。
1)打开终端提示符
2)输入sudo vi /etc/launchd.conf
(注意:这个文件可能还不存在)
3)将如下内容放入文件中
# Set environment variables here so they are available globally to all apps
# (and Terminal), including those launched via Spotlight.
#
# After editing this file run the following command from the terminal to update
# environment variables globally without needing to reboot.
# NOTE: You will still need to restart the relevant application (including
# Terminal) to pick up the changes!
# grep -E "^setenv" /etc/launchd.conf | xargs -t -L 1 launchctl
#
# See http://www.digitaledgesw.com/node/31
# and http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x/
#
# Note that you must hardcode the paths below, don't use enviroment variables.
# You also need to surround multiple values in quotes, see MAVEN_OPTS example below.
#
setenv JAVA_VERSION 1.6
setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
setenv GROOVY_HOME /Applications/Dev/groovy
setenv GRAILS_HOME /Applications/Dev/grails
setenv NEXUS_HOME /Applications/Dev/nexus/nexus-webapp
setenv JRUBY_HOME /Applications/Dev/jruby
setenv ANT_HOME /Applications/Dev/apache-ant
setenv ANT_OPTS -Xmx512M
setenv MAVEN_OPTS "-Xmx1024M -XX:MaxPermSize=512m"
setenv M2_HOME /Applications/Dev/apache-maven
setenv JMETER_HOME /Applications/Dev/jakarta-jmeter
4)将更改保存在VI中,然后重新启动Mac。 或者使用上面代码注释中显示的grep / xargs命令。
5)通过打开终端窗口并输入export
,证明你的变量正在工作,你应该看到你的新变量。 这些也将在您通过Spotlight启动的IntelliJ和其他GUI应用程序中提供。
如何为Spotlight启动的新流程设置环境(无需重启)
您可以使用launchctl setenv
设置launchd使用的环境(以及扩展名,从Spotlight开始的任何内容)。 例如要设置路径:
launchctl setenv PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
或者,如果您想在.bashrc
或类似文件中设置路径,请将其镜像到launchd中:
PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
launchctl setenv PATH $PATH
没有必要重新启动,但如果您希望它能够接受更改的环境,则需要重新启动应用程序。
这包括任何已经在Terminal.app下运行的shell,但是如果你在那里,你可以更直接的设置环境,例如export PATH=/opt/local/bin:/opt/local/sbin:$PATH
for bash or zsh 。
重新启动后如何保持更改
要在重新启动后保留更改,可以从/etc/launchd.conf
设置环境变量,如下所示:
setenv PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
launchd.conf
在您重启时自动执行。
如果您希望这些更改现在生效,您应该使用此命令重新处理launchctl.conf
(谢谢@mklement提示!)
egrep -v '^s*#' /etc/launchd.conf | launchctl
您可以通过man launchctl
命令了解有关launchctl
以及它如何加载launchd.conf
更多信息。
直到并包括狮子 (10.7),您都可以设置它们
〜/ .MacOSX / environment.plist
看到:
对于终端中的PATH,您应该可以设置.bash_profile
或.profile
(但您可能需要创建它)
对于山狮和以上,你需要使用launchd
和launchctl