【发布时间】:2009-02-15 07:40:52
【问题描述】:
我尝试将以下内容添加到我的 ~/.profile 中,但未成功:
export PATH='$HOME/opt/git/bin'
这似乎不起作用,因为 $git 什么也没给我。 我正在尝试安装 Git。
我也试过命令here。
【问题讨论】:
-
你确定你的 git 安装在 $HOME/opt/git 而不仅仅是 /opt/git 吗?
我尝试将以下内容添加到我的 ~/.profile 中,但未成功:
export PATH='$HOME/opt/git/bin'
这似乎不起作用,因为 $git 什么也没给我。 我正在尝试安装 Git。
我也试过命令here。
【问题讨论】:
您需要小心使用该命令。它将覆盖您的 $PATH。
您可能需要将其放入 ~/.bash_profile 并将其更改为:
export PATH="$HOME/opt/git/bin:$PATH"
【讨论】:
正如 SirLancelot 指出的那样,您重置了路径而不是增加了路径。您还使用了单引号而不是双引号,因此设置的值正是显示的字符串,而不是包含 $HOME 的扩展值。如前所述,正确的解决方案是使用:
export PATH="$PATH:$HOME/opt/git/bin"
或者你可以颠倒顺序:
export PATH="$HOME/opt/git/bin:$PATH"
但是,所做的只是确保当您键入 git 时,会找到可执行文件。
您的问题还提到使用$git;您必须设置该变量,可能使用:
export git=$(which git)
话虽如此,当git 在您的路径上时,我看不出使用$git 有什么好处;它是一个额外的字符(也是一个移位的数字)。如果您想继续使用$git,您可能不应该将$HOME/opt/git/bin 添加到PATH。它的存在会减慢不成功的命令搜索速度,如果您总是通过$git 访问git(现在必须使用:export git=$HOME/opt/git/bin/git 进行设置),那么在您的PATH 中拥有git bin 目录没有任何好处。
Masi 评论说订单毫无意义,Douglas Leeder 回应:
顺序并非毫无意义——它是[目录的]搜索顺序。但是,
git不在您的任何其他搜索目录中,并且gitbin 目录中的命令与任何其他目录中的命令之间不应有任何重叠,因此在这种情况下顺序不会有任何区别.
这基本上是准确的,但我会稍微旋转一下。搜索命令时,系统会通过在 PATH 中的每个目录中查找该程序来查找该程序,直到找到为止。因此,当它查找ls 时,例如,当git bin 目录位于PATH 的前面时,shell 将查找$HOME/opt/git/bin/ls 并没有找到它,并传递到您的PATH 中的其他目录,最终在/usr/bin/ls 或/bin/ls 中找到它。一些 shell 缓存找到程序的位置;其他的没有。因此,将 /bin 和 /usr/bin 放在 PATH 的前面是很有意义的,以加快对标准实用程序的访问。我总是将$HOME/bin 放在我的 PATH 前面;那样的话,我可以用我自己的版本覆盖任何东西——我会为一些命令这样做。
另外,在我的主要工作机器上,/usr/local/bin 目录不受我控制。因此,我不信任它,并且我确保它在我的 PATH 的末尾是正确的,因此其中的古董 GCC 不是我使用的那个,例如。 [嗯;他们已将其更新到 3.4.6;它曾经是 2.95 左右;不过,我使用 4.3.3。]
再给你一个建议。考虑在您的$HOME/bin 中创建一个符号链接(假设您有一个并且它在您的PATH 上),指向git 的安装位置。这意味着您无需向 PATH 添加额外的目录(因此运行速度会稍微快一些),但您可以使用您选择使用的 git 版本。
ln -s $HOME/opt/git/bin/git $HOME/bin/git
【讨论】:
你需要删除'',试试这个
export PATH=$HOME/opt/git/bin
不要覆盖你的整个路径试试这个:
export PATH=$PATH:$HOME/opt/git/bin
【讨论】:
这应该有效。
$HOME 指向哪里?
确保 $HOME/opt/git/bin 实际上包含一个名为 git 的可执行文件。
【讨论】: