如何将$ HOME / opt / git / bin放入PATH?

时间:2009-02-15 07:40:52

标签: git bash unix path

我试图将以下内容未成功包含在我的〜/ .profile中:

export PATH='$HOME/opt/git/bin'

似乎没有用,因为$ git什么都没给我。 我正在尝试安装Git。

我也尝试过命令here

4 个答案:

答案 0 :(得分:19)

你要小心那个命令。它将覆盖您的$ PATH。

您可能需要将其放入~/.bash_profile并将其更改为:

export PATH="$HOME/opt/git/bin:$PATH"

答案 1 :(得分:8)

正如SirLancelot指出的那样,你重置了你的路径,而不是增加它。您还使用单引号而不是双引号,因此值集恰好是显示的字符串,而不是包含$ HOME的扩展值。如上所述,正确的解决方案是使用:

export PATH="$PATH:$HOME/opt/git/bin"

或者您可以撤销订单:

export PATH="$HOME/opt/git/bin:$PATH"

但是,所有这一切都是确保当您键入git时,将找到可执行文件。

您的问题还提到使用$git;您必须设置该变量,可能使用:

export git=$(which git)

话虽如此,当$git出现在您的PATH上时,我认为使用git没有优势;这是一个额外的字符输入(和一个移位数字)。如果您想继续使用$git,则可能不应将$HOME/opt/git/bin添加到PATH。它的存在减慢了失败的命令搜索速度,如果你总是通过git访问$git(现在必须使用export git=$HOME/opt/git/bin/git进行设置),那么{{1}没有任何好处PATH上的bin目录。


Masi评论订单毫无意义,Douglas Leeder回应道:

  

顺序没有意义 - 它是[搜索目录]的顺序。但是,git不在您的任何其他搜索目录中,并且git bin目录中的命令与任何其他目录之间不应该有任何重叠,因此订单不会产生任何在这种情况下的差异。

这基本上是准确的,但我会稍微旋转一下。搜索命令时,系统通过在PATH中的每个目录中查找该程序来查找该程序,直到找到它为止。因此,当它查找git时,例如,使用PATH前面的ls bin目录,shell将查找git但找不到它,并传递给PATH中的其他目录,最终在$HOME/opt/git/bin/ls/usr/bin/ls中找到它。有些shell会缓存程序所在的位置;别人不这样做。因此,将/bin/ls/bin放在PATH前面附近是有意义的,以加快对标准实用程序的访问。我总是把/usr/bin放在我的路径前面;这样,我可以使用我自己的版本覆盖任何内容 - 我会为某些命令执行此操作。

此外,在我的主要工作机器上,$HOME/bin目录不在我的控制之下。因此,我不相信它,并且我确保它在我的PATH的末尾是正确的,所以其中的古董GCC不是我使用的那个,例如。 [嗯;他们已将其更新为3.4.6;曾经是2.95左右;我仍然使用4.3.3。]

还有一个建议。考虑在/usr/local/bin中创建一个符号链接(假设您有一个符号链接,它位于您的PATH上)指向$HOME/bin的安装位置。这意味着您不会向PATH添加额外的目录(因此工作速度稍快)但您确实可以使用您选择使用的git版本。

git

答案 2 :(得分:2)

您需要删除'',试试这个

export PATH=$HOME/opt/git/bin

不要覆盖你的整个路径,试试这个:

export PATH=$PATH:$HOME/opt/git/bin

答案 3 :(得分:1)

这应该有效。

$ HOME指向哪里?

确保$ HOME / opt / git / bin实际上包含一个名为git的可执行文件。