在OS X中设置环境变量?

在OSX中修改环境变量(如PATH)的正确方法是什么? 我看了一下Google,找到了3个不同的文件来编辑:

  • 的/ etc /路径
  • 〜/ .profile文件
  • 〜/ .tcshrc文件
  • 我甚至没有这些文件,而且我很确定.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

    看到:

  • 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 (但您可能需要创建它)

    对于山狮和以上,你需要使用launchdlaunchctl

    链接地址: http://www.djcxy.com/p/25567.html

    上一篇: Setting environment variables in OS X?

    下一篇: Capturing output of find .