Mountain Lion中的系统环境变量在哪里设置?


46

在狮子会(和以前的版本)它是在.MacOSX/environment.plist。升级到10.8后,文件仍然存在,但变量没有进行。

我也试过添加它们/etc/launchd.conf,它们将出现在终端中,但不会出现在GUI应用程序中(比如我的IDE)。


你改变后重启了/etc/launchd.conf吗?
nohillside

我做了,其中的所有变量现在都可以在任何终端中使用,但我的IDE不存在。
Felix

也许IDE不会向您公开环境(请参阅我的回答)?它是什么IDE?它是由Finder或Spotlight直接发布的吗?
halloleo 2013年

Answers:


22

我也在Apple开发者论坛上提出了这个问题并得到了官方回复。

更改.app本身的Info.plist以包含带有所需环境变量的“LSEnvironment”字典。
不再支持〜/ .MacOSX / environment.plist。


2
那位于哪里?
orome

提供更具体示例的链接会很有用。
Blaisorblade 2013年

1
更新:我尝试更改该文件后,找出语法(我认为),但它对我来说根本不起作用。
Blaisorblade

4
在WhatEver.app/Content/Info.plist中,每个应用程序都会有一个Info.plist。您可以使用XCode编辑它。单击信息属性列表中的“+”,然后添加一个名为LSEnvironment的字典。如果您正确键入它,它会将其重命名为环境变量。然后单击要添加的每个环境变量的“+”。
菲利克斯2013年

2
这是一个很好的解决方案,但它不再适用于Yosemite 10.10.5。
Dalmazio 2015年

21

我知道这是一个老问题,但我想我会指出,在优胜美地/etc/launchd.conf不再有效(正如手册页所证实)。所以这是另一种选择。

启动AppleScript编辑器,输入如下命令:

do shell script "launchctl setenv variablename value"

(根据需要添加多行)

现在将(⌘S)保存为文件格式:应用程序。最后打开系统设置用户和组登录项并添加新应用程序。


请注意,它可能也不适用于作为登录项打开的其他应用程序,也许是您在登录后快速打开的应用程序
Mark

这对我有用。非常感谢。这一整天都在疯狂!
2014年

2
看起来是迄今为止唯一真正的通用解决方案。但它还需要9个投票才能成为第一个答案。:c
Sarge Borsch 2015年

这对El Capitan来说很有用。正如上面提到的@Mark,存在排序问题(例如,恢复的应用程序可能有也可能没有环境),但一旦登录,这就像你期望的那样工作。也就是说,从Spotlight或Dock启动的应用程序具有正确的环境。
Alec Thomas

@Mark你可以试试这个答案,利用Launch Agent。在我的情况下,启动代理在登录项之后启动,因此我将目标应用程序(如Eclipse)从Login Item移动到Launch Agent,以便在此特殊应用程序设置环境变量之后启动它们。
富兰克林于

10

正如您所发现的那样,不再使用environment.plist文件,将Info.plist中存储为LSEnvironment字符串变量仅由launchd设置

如果直接从终端/ shell调用程序,则不能依赖它们来设置终端将设置的通用环境变量。好消息是open -a命令会触发launchd进行启动,因此如果不是本地shell环境,将为应用程序环境设置一致的变量。


4

设置环境变量/etc/launchd.conf是可行的方法:本地shell,Finder或Spotlight 重新启动后启动的每个应用程序都会继承这些变量 - 我已经使用Mountain Lion 10.8.3进行了广泛的测试。

2个警告:


1
/etc/launchd.conf自约塞米蒂以来不再支持。请参阅apple.stackexchange.com/questions/106355 / ...
Franklin Yu于

3

试试launchctl setenv NAME VALUE。我不知道它与编辑launchd.conf有什么不同,但它在终端和GUI应用程序中都适用于我。更多细节。

请注意,重启后无法生存。这是解决这个问题的方法


3
这是一个很长的页面,你链接到这里。相关部分究竟在哪里?你可以直接把它包含在你的答案中,让每个人都更容易吗?
nohillside

2
哎呀,好点,以为我在这个网址中包含了更多的片段。固定。
ryan 2013年

1
在那里重新启动的生存方式使用环境
马克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.