29

今天刚刚安装了 Lion,我的 PATH 环境变量不再由 ~/.MacOSX/environment.plist 设置。有什么改变吗?似乎找不到任何关于此或如何解决的信息。有任何想法吗?

以下是 PLIST 的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PATH</key>
    <string>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11/bin:/Users/mdi/bin</string>
</dict>
</plist>
4

10 回答 10

15

我今天遇到了同样的问题。我打电话给 Apple 支持,在升级为高级顾问后,再升级到她的主管,我被告知他们不再支持 environment.plist 并且在 Mac OS 10.7 中没有官方支持的定义环境变量的方法。

于 2011-07-22T16:53:49.867 回答
14

改为使用~/.launchd.conf(请参阅man launchctl)。

有关详细信息,请参阅此答案

于 2011-07-21T03:13:31.897 回答
10

不管苹果官方是否支持这种机制,目前的技术说明Technical Q&A QA1067仍然是准确的。但是,没有一个重要的警告:属性列表必须是二进制格式。Xcode 4 在用于创建新的属性列表时,会发出文本格式的文件(无论文件检查器中指定的类型如何)。所以你要么需要使用'plutil'转换保存的文件:

plutil -convert binary1 environment.plist

或使用“默认值”写出一个新的模板文件,您可以在 Xcode 中编辑该文件(保存时将遵循原始二进制格式):

defaults write defaults write $HOME/.MacOSX/environment Root "1"
于 2011-12-07T20:19:07.460 回答
1

奇怪,因为它在这里完美地工作。我必须设置一个 JRI 环境来从 Java 应用程序访问 R 内部,并且更新 .profile 不足以让 NetBeans 捕获所有环境变量。

创建 environment.plist 文件就可以了。

作为参考,该文件的内容:

Malessere:~ xxxxx$ cat .MacOSX/environment.plist 
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
      <key>DYLD_LIBRARY_PATH</key>
      <string>/Users/xxxxx/lib/jri-2.13</string>
      <key>R_HOME</key>
      <string>/Library/Frameworks/R.framework/Resources</string>
   </dict>
   </plist>
于 2011-08-02T10:55:01.433 回答
1

像 brew 一样在 /usr/local/bin/ 中创建符号链接。对我来说非常有效,而且 IMO 是一个更像 unix 的解决方案,其中一切都是文件。

于 2012-04-09T11:24:50.913 回答
1

我刚刚被 Snow Leopard 中类似的东西烫伤了,然后弄清楚了问题所在。

做:

$ cd
$ defaults write .MacOSX/environment FOO bar

...但事实证明,这与做(在我的情况下)不同:

$ cd
$ defaults write /Users/ljnelson/.MacOSX/environment FOO bar

也就是说,您的域的“路径”(它不是真正的路径)必须是您的文件的完整文件路径$HOME/.MacOSX/environment.plist(减去.plist后缀)。显然,其他任何东西都会将变量写入不同的域(不知道它放在哪里)。

所以,结果:总是这样做defaults write /full/path/to/your/.MacOSX/environment VARNAME value;根本不要write对子命令的第一个参数使用任何快捷方式。

于 2012-10-12T18:06:10.253 回答
0

您可以~/.MacOSX/environment.plist使用以下示例编辑您的$PATH

defaults write $HOME/.MacOSX/environment PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"

这将重写你的~/.MacOSX/environment.plist

或编辑此文件:

/etc/paths

改变系统变量的顺序。

于 2012-01-20T17:47:28.683 回答
0

默认情况下,Mac OS X(10.7.4 及更高版本)不再支持它。请参阅http://support.apple.com/kb/TS4267

于 2012-07-18T14:55:07.260 回答
0

[[我将我的这个答案复制到这里,因为它可能对某人有帮助:]]

由于我自己的探索,我现在知道如何以 8 种不同方式中的 7 种设置环境变量。我试图让一个 envar 通过我在 Xcode 下开发的应用程序。我使用这些不同的方法设置“跟踪器”envars 来告诉我哪些将它纳入我的应用程序范围。从下面,您可以看到在 Xcode 中编辑“方案”以添加参数是有效的,“putenv”也是如此。什么没有在那个范围内设置它:~/.MACOS/environment.plist,特定于应用程序的 plist,.profile,并添加一个构建阶段来运行自定义脚本(我在 Xcode [至少] 中找到了另一种设置方式一个,但忘记了我所说的示踪剂,现在找不到;也许它在另一台机器上....)

GPU_DUMP_DEVICE_KERNEL 为 3

GPU_DUMP_TRK_ENVPLIST 为(空)

GPU_DUMP_TRK_APPPLIST 为(空)

GPU_DUMP_TRK_DOTPROFILE 为(空)

GPU_DUMP_TRK_RUNSCRIPT 为(空)

GPU_DUMP_TRK_SCHARGS 为 1

GPU_DUMP_TRK_PUTENV 为 1

...另一方面,如果我进入终端并说“设置”,它似乎唯一得到的就是来自 .profile 的那个(我原以为它也会选择 environment.plist,而我确定有一次我确实在终端中看到了第二个示踪剂 envar,所以从那时起某些事情可能变得不稳定;漫长的一天....)

于 2012-09-02T21:49:55.377 回答
0

我最近打包了 Xcode 的 Run Script Phase 使用的工具,并将它们放在 $HOME/bin 中。我的 bash shell 的 PATH 环境变量包括了这个,所以我认为 Xcode 也会。

它从来没有奏效,我在这里发现了类似的问题。

我从 Xcode 调用的脚本 (echo $PATH) 中打印了 PATH 变量,以查看 PATH 变量的设置。

幸运的是,其中一个路径 /Applications/Xcode.app/Contents/Developer/usr/local/bin 从未使用过。

这是我的解决方案。我创建了一个从上述目录到 $HOME/bin 的符号链接。

导航到 /Applications/Xcode.app/Contents/Developer/usr/local 并执行 sudo ln -s $HOME/bin bin。

我的工具现在可用于 Xcode 平台。

于 2018-04-14T04:15:37.023 回答