笔记

笔记

我正在运行 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)。

  1. 从终端(或您最喜欢的替代品),查看文件中是否有任何内容/etc/launchd.conf

    cat /etc/launchd.conf
    

    如果您收到类似错误

    cat: /etc/launchd.conf: 没有这样的文件或目录

    然后继续下一步。如果该cat命令确实显示一些内容,请复制它。

  2. 确定系统的当前路径,因为我们需要确保稍后将其包括在内:

    launchctl getenv PATH
    
  3. 在您最喜欢的编辑器中,创建一个包含以下内容的新文本文件,并根据您的需要进行修改:

    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命令,只需修改它以添加您需要的额外目录。

  4. 保存新文件在你的主目录中/Users/YourUserName) 作为launchd.conf

  5. 返回终端并输入:

    sudo mv ~/launchd.conf /etc
    

    使用管理员权限将新文件移至/etc替换之前存在的任何东西。根据您之前的使用情况sudo命令,您可能会收到一条简短的“小心做您正在做的事情”消息,但无论哪种方式,您都需要输入密码。/etc无法通过图形编辑器的“保存”对话框直接访问,除非您是真正的高级用户并且知道如何绕过 OSX 的文件系统限制。

  6. 重新启动计算机

你应该已经准备好了。如果你有兴趣,launchdlaunchctl使用csh/tcsh语法,因此不能使用bash/zsh export PATH=/usr/local/bin:...格式。

相关内容