我正在运行 Mountain Lion 10.8.4,并且对我的环境进行了全部自定义,~/.profile
以便当我运行 GUI 应用程序时,例如崇高的文字或从命令行使用 Eclipse
open /Applications/Sublime\ Text\ 2.app
它们继承了我的$PATH
设置,允许应用程序运行不在 OSX 非常有限的默认路径中的外部命令。但是,我真的希望能够通过 Finder 或 Dock 打开程序,并为它们提供与我在命令行上使用的路径相同的路径。launchctl setenv PATH $PATH
在 10.8 中不起作用。我该如何设置?
答案1
笔记
这不再适用于更新版本的 OS X,包括 10.10 Yosemite(我不确定 10.9 Mavericks)。不过,它确实适用于 10.8 Mountain Lion。
实际上并不太难,但是您确实需要具有管理员权限(使用sudo
命令 write to /etc
)。
从终端(或您最喜欢的替代品),查看文件中是否有任何内容
/etc/launchd.conf
:cat /etc/launchd.conf
如果您收到类似错误
cat: /etc/launchd.conf: 没有这样的文件或目录
然后继续下一步。如果该
cat
命令确实显示一些内容,请复制它。确定系统的当前路径,因为我们需要确保稍后将其包括在内:
launchctl getenv PATH
在您最喜欢的编辑器中,创建一个包含以下内容的新文本文件,并根据您的需要进行修改:
setenv PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/YourUserName/bin:/path/to/gems/bin
确保您已包含全部的上一步中路径的内容,否则您将破坏系统。
如果
cat
步骤 1 中的命令显示了一些内容,请将其粘贴到新文件中前命令setenv PATH
。如果它已经包含setenv PATH
命令,只需修改它以添加您需要的额外目录。保存新文件在你的主目录中(
/Users/YourUserName
) 作为launchd.conf
。返回终端并输入:
sudo mv ~/launchd.conf /etc
使用管理员权限将新文件移至
/etc
,替换之前存在的任何东西。根据您之前的使用情况sudo
命令,您可能会收到一条简短的“小心做您正在做的事情”消息,但无论哪种方式,您都需要输入密码。/etc
无法通过图形编辑器的“保存”对话框直接访问,除非您是真正的高级用户并且知道如何绕过 OSX 的文件系统限制。重新启动计算机
你应该已经准备好了。如果你有兴趣,launchd
和launchctl
使用csh
/tcsh
语法,因此不能使用bash
/zsh
export PATH=/usr/local/bin:...
格式。