今天刚刚安装了Lion,我的PATH env变量不再由〜/ .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>
答案 0 :(得分:15)
我今天遇到了同样的问题。我打电话给Apple支持,在升级为高级顾问后,然后告诉她的主管,我被告知他们不再支持environment.plist,并且在Mac OS 10.7中没有正式支持的方法来定义环境变量。
答案 1 :(得分:14)
改为使用~/.launchd.conf
(请参阅man launchctl
)。
有关详细信息,请参阅this answer。
答案 2 :(得分:10)
Apple是否正式支持此机制,目前的技术说明Technical Q&A QA1067仍然准确无误。但是,缺少一个重要的警告:财产清单需要采用二进制格式。 Xcode 4在用于创建新的属性列表时,会发出文本格式的文件(无论文件检查器中指定的类型如何)。所以你需要使用'plutil'来转换保存的文件:
plutil -convert binary1 environment.plist
或使用'defaults'写出一个可以在Xcode中编辑的新模板文件(保存时将遵循原始二进制格式):
defaults write defaults write $HOME/.MacOSX/environment Root "1"
答案 3 :(得分: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>
答案 4 :(得分:1)
像brew一样,在/ usr / local / bin /中创建一个符号链接。对我来说非常适合,IMO是一个更像unix的解决方案,一切都是文件。
答案 5 :(得分: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
子命令的第一个参数使用任何快捷方式。
答案 6 :(得分: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
更改系统变量的顺序。
答案 7 :(得分:0)
默认情况下,Mac OS X(10.7.4及更高版本)不再支持它。见http://support.apple.com/kb/TS4267
答案 8 :(得分:0)
[[我把我的这个答案复制到这里,因为它可能对某人有帮助:]]
由于我自己的探索,我现在知道如何以8种不同方式中的7种设置环境变量。我试图让一个envar进入我在Xcode下开发的应用程序。我使用这些不同的方法设置“tracer”envars来告诉我哪些方法将它纳入我的应用程序的范围。从下面,您可以看到在Xcode中编辑“方案”以添加参数,“putenv”也是如此。没有在该范围内设置的内容:〜/ .MACOS / environment.plist,特定于应用程序的plist,.profile,以及添加构建阶段以运行自定义脚本(我在Xcode中找到另一种方式[至少]设置一个但忘了我称之为跟踪器但现在找不到它;也许它在另一台机器上......)
GPU_DUMP_DEVICE_KERNEL为3
GPU_DUMP_TRK_ENVPLIST为(null)
GPU_DUMP_TRK_APPPLIST为(null)
GPU_DUMP_TRK_DOTPROFILE是(null)
GPU_DUMP_TRK_RUNSCRIPT是(null)
GPU_DUMP_TRK_SCHARGS为1
GPU_DUMP_TRK_PUTENV为1
另一方面,如果我进入终端并说“设置”,它似乎唯一得到的是来自.profile的那个(我原本以为它也会选择environment.plist,并且我确信,一旦我做了在终端看到第二个示踪器envar,那么从那以后可能会出现问题;漫长的一天....)答案 9 :(得分: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平台使用。