Ubuntu 20.04服务器手动安装Go后提示go命令不存在问题求助
问题根因
你的安装操作本身没有错误,无法识别go命令是环境变量未生效导致的,具体原因分为三类:
- 配置文件修改后未手动加载:你编辑完
~/.bash_aliases后没有执行加载命令,当前运行的终端无法读取到更新后的PATH配置,因此找不到go命令的执行路径。 - Shell配置未启用
.bash_aliases加载:部分Ubuntu系统的默认~/.bashrc中没有加载~/.bash_aliases的逻辑,导致你写入的环境变量永远不会被Shell读取。 - 配置范围不匹配:如果你需要在sudo、其他用户登录、非交互式Shell场景下使用go命令,当前用户目录下的私有配置不会生效。
解决步骤
- 临时生效验证
先执行加载命令让当前终端的配置生效,验证安装是否正常:
source ~/.bash_aliases go version
如果正常输出go version go1.15.10 linux/amd64,说明安装本身没有问题,只需解决配置自动加载的问题即可。
- 配置自动加载逻辑
编辑~/.bashrc文件,确认末尾是否存在如下加载逻辑,不存在则追加:
if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
后续新开Bash终端会自动加载你配置的Go环境变量。
如果你使用的是Zsh等其他Shell,需要将环境变量配置写入对应Shell的配置文件(如~/.zshrc)才能自动生效。
- (可选)全局环境变量配置(服务器场景推荐)
如果需要让所有用户、所有Shell场景都能使用Go命令,可以将环境变量写入全局配置文件,操作命令如下:
# 创建全局Go环境变量配置文件 sudo tee /etc/profile.d/go.sh << 'EOF' export GOROOT=/usr/local/go export GOPATH=\$HOME/go export PATH=\$GOPATH/bin:\$GOROOT/bin:\$PATH EOF # 赋予执行权限 sudo chmod +x /etc/profile.d/go.sh # 加载全局配置生效 source /etc/profile.d/go.sh
内容的提问来源于stack exchange,提问作者Mr. Goose
相关产品推荐
相关产品推荐

