未找到 git 命令

未找到 git 命令

我必须在 RHEL 上从源代码安装 git。安装后,/usr/local/bin/git尝试该命令时会显示 git 命令。此 whereis路径也可用$PATH

当我输入 git 时,它仍然显示“未找到命令”。如何解决这个问题?

编辑:各种命令的输出

$type git
type: Command not found.

$which git
git: Command not found.

$ls -l /usr/local/bin/git
-rwxr-xr-x 112 root users 5851488 Mar 15 20:07 /usr/local/bin/git

$whereis git
git: /usr/local/bin/git

$echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

编辑:它现在可以工作,但不知道为什么

我断开了 telnet 连接并在几分钟前再次登录,发现 git 命令可以工作。我不确定是什么导致它开始工作。这很令人困惑。

答案1

从错误消息来看,您正在使用 (t)csh。在您的问题中提及它会有所帮助,特别是当您显示$为提示符时,这通常是 Bourne 提示符,而不是 csh 提示符。

type是 Bourne 风格的内置 shell。它在csh 中不存在。当您运行时type git,它会告诉您type未找到该命令。

许多 shell 将有关搜索路径中的命令位置的信息保存在缓存中。我不知道是否有任何版本的 csh 缓存否定查找,但似乎你的版本确实如此。运行命令rehash刷新缓存。当您启动一个新的 shell 实例时,它有一个新的缓存,因此不记得git之前不存在。

答案2

确保,如这个线程,你的 shell 与你应该得到的 shell 没有改变:

我刚刚发现我的 shell 已更改为 csh 并且导致了问题。

[root@localhost ~]# grep ^"$USER" /etc/passwd
root:x:0:0:root:/root:/bin/csh

我把它改成bash,问题就解决了!

[root@localhost ~]# type export
export is a shell builtin

这可以解释为什么您会收到“ type: Command not found.”错误消息。

我尝试了这些命令:

[root@localhost ~]# csh
[root@localhost ~]# type export
type: Command not found.
[root@localhost ~]# bash
[root@localhost ~]# type export
export is a shell builtin
[root@localhost ~]# grep ^"$USER" /etc/passwd
root:x:0:0:root:/root:/bin/bash

答案3

最可能的原因是你有正确的PATH但不正确的LD_LIBRARY_PATH

最新的git可执行文件是动态链接的二进制文件。当您按照安装说明进行操作时,它可能会将库(.so文件)放置在 中/usr/local/lib,您需要将此路径添加到您的LD_LIBRARY_PATH.尝试一下,然后运行 ​​git:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib
git

如果这不起作用,您能否提供ldd /usr/local/bin/git.谢谢。

PS:如果解决方案有效,您需要将 LD_LIBRARY_PATH 行添加到您的.bash_profile

相关内容