Ubuntu 20.04下golangci-lint运行报错:git未在$PATH中找到
golangci-lint run报错:git不在$PATH中的问题解决(Ubuntu 20.04)
问题描述
在Ubuntu 20.04系统中执行golangci-lint run时出现如下报错,尽管系统中Git一直正常使用:
ERRO Running error: context loading failed: failed to load packages: failed to load with go/packages: err: exit status 1: stderr: go: github.com/personal/private-repo@v1.5.4-staging.0.20221037132524-fa474c90e736: git init --bare in /home/personal/snap/golangci-lint/104/go/pkg/mod/cache/vcs/0478a3848f1237177112e0218abaefe19791c78a4f537df39ac0804ae69a3a05: exec: "git": executable file not found in $PATH go: github.com/personal/private-repo@v1.5.4-staging.0.20221037132524-fa474c90e736: git init --bare in /home/koinworks/snap/golangci-lint/104/go/pkg/mod/cache/vcs/0478a3848f1237177112e0218abaefe19791c78a4f537df39ac0804ae69a3a05: exec: "git": executable file not found in $PATH
原因分析
报错核心是snap安装的golangci-lint处于沙箱环境中,无法访问系统全局的Git。你系统中的Git在用户环境的$PATH中,但snap应用默认的沙箱隔离机制会限制其访问外部命令,导致golangci-lint在拉取私有模块时找不到Git。
解决办法
方法1:为snap版golangci-lint添加Git访问权限
执行以下命令,让snap应用获得访问系统Git的权限:
sudo snap connect golangci-lint:git
执行后重新运行golangci-lint run即可。
方法2:改用官方脚本安装golangci-lint(推荐)
如果snap的沙箱限制仍有问题,直接安装非snap版本的golangci-lint,避免沙箱隔离:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.54.2
注意:将v1.54.2替换为你需要的最新版本号,安装完成后确保$(go env GOPATH)/bin在你的系统$PATH中。
方法3:手动指定Git路径(备选)
如果上述方法无效,可以在运行golangci-lint时手动将Git路径加入环境变量:
PATH=$PATH:/usr/bin/git golangci-lint run
(假设Git的路径是/usr/bin/git,可以用which git确认实际路径)
内容的提问来源于stack exchange,提问作者new line
相关产品推荐
相关产品推荐

