我试图将以下内容未成功包含在我的〜/ .profile中:
export PATH='$HOME/opt/git/bin'
似乎没有用,因为$ git什么都没给我。 我正在尝试安装Git。
我也尝试过命令here。
答案 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的可执行文件。