CentOS 7.9中Root用户已安装Git但非Root用户提示git: command not found的解决方法咨询
这问题我之前帮同事排查过好几次,核心原因十有八九是环境变量PATH的差异:Root用户的PATH里包含了Git的安装目录,但普通用户的PATH没把这个路径加进去。下面给你几个实用的解决办法,从临时到永久都有:
方法1:临时解决(仅当前终端会话有效)
先在Root用户下确认Git的安装路径,执行:
which git
通常Wandisco提供的Git会安装在/opt/wandisco/git/bin目录下,你会得到类似/opt/wandisco/git/bin/git的输出。
切换到非Root用户,执行下面的命令把Git的bin目录加到PATH里:
export PATH=$PATH:/opt/wandisco/git/bin
现在再执行git --version应该就能正常输出版本了,不过这个修改只在当前终端窗口有效,关闭后会失效。
方法2:永久解决单个用户
如果只想让某个非Root用户永久能用Git,编辑该用户的bash配置文件,比如~/.bashrc:
echo 'export PATH=$PATH:/opt/wandisco/git/bin' >> ~/.bashrc
然后让配置生效:
source ~/.bashrc
下次这个用户登录终端时,Git命令就会自动被识别了。
方法3:全局解决(所有用户生效)
如果要让所有非Root用户都能使用Git,需要修改系统级的环境变量配置文件,比如/etc/profile:
# 用Root用户执行 echo 'export PATH=$PATH:/opt/wandisco/git/bin' >> /etc/profile
然后让配置生效:
source /etc/profile
或者让所有用户重新登录系统,这样不管哪个用户登录,PATH里都会包含Git的路径。
额外排查点
如果上面的方法都没生效,可以检查Git的执行权限:
# Root用户下执行 ls -l /opt/wandisco/git/bin/git
确保输出里的权限包含r-x(比如-rwxr-xr-x),这样普通用户才有执行权限。不过从Root能正常使用来看,权限问题的概率很低,主要还是PATH的问题。
内容的提问来源于stack exchange,提问作者Anton




