在Mavericks上找不到真正的$ PATH文件

时间:2014-02-06 03:36:08

标签: php path .bash-profile .profile mamp-pro

我同时拥有~/.bash_profile& ~/.profile个文件。

~/.bash_profile包含一行:

export PATH=/Applications/mamp/bin/php5.5.3/bin:$PATH

~/.profile包含三行:

# MacPorts Installer addition on 2014-02-02_at_20:54:53: adding an appropriate PATH variable for use with MacPorts.
export PATH=/Applications/MAMP/bin/php5.5.3/bin/:/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

正如你所看到的,我试图让我的默认PHP PATH使用MAMP PHP,因为我已经安装了mcrypt。出于某种原因,当我输入whereis PHP时,我会获得原生路线:/usr/bin/php,当我echo $PATH时,我得到:

/Applications/mamp/bin/php5.5.3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

在某个地方,我有另一个文件,它真正控制我的PATH,我不知道它在哪里。还有什么可以控制我的PATH路线?

注意:我有 Homebrew MacPorts Xcode Xcode命令行工具已安装。

2 个答案:

答案 0 :(得分:1)

您所看到的内容来自系统范围的/ etc / paths文件。它是〜/ .profile之前的基础$ PATH环境变量的源,〜/ .bash_profile和其他参与者。如果您在终端窗口中,可以使用以下命令对其进行编辑:

sudo open -t /etc/paths

默认情况下,它包含以下路径:

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

但我不建议编辑此文件,因为它是系统范围的,会影响系统中的每个用户。

如果您想要完全控制$ PATH,以便只影响您自己的帐户,那么您的.profile导出PATH行中的(包括$ PATH)可能会更好。例如(但不是这个):

export PATH=/Applications/mamp/bin/php5.5.3/bin:/opt/local/bin:/opt/local/sbin

答案 1 :(得分:0)

您确定要加载.profile吗?尝试测试并为其添加回声线:

echo "test: .profile has loaded"

现在打开一个新的终端窗口,你看到你的回声吗?我怀疑不是因为我认为OSX默认情况下不会加载.profile,至少在今天。

如果您真的想使用.profile,可以要求.bash_profile加载它:

if [ -f ~/.profile ]; then
    source ~/.profile
fi

希望这有帮助。

修改: 如果没有。this answer

中建议的.bash_profile或.bash_login,则会加载.profile