无法在本地安装 golangci-lint

And*_*ani 5 shell go linter golangci-lint

我使用的是 RHEL 8.6,我的 Go 版本如下:

$ go version
go version go1.18.3 linux/amd64
Run Code Online (Sandbox Code Playgroud)

我正在尝试在本地安装,但文档golangci-lint中描述的方法均不起作用。

我尝试过的:

第一的:

$ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.46.2
golangci/golangci-lint info checking GitHub for tag 'v1.46.2'
golangci/golangci-lint info found version: 1.46.2 for v1.46.2/linux/amd64
golangci/golangci-lint info installed /home/acabista/go/bin/golangci-lint
$ golangci-lint --version
bash: golangci-lint: command not found...
Run Code Online (Sandbox Code Playgroud)

第二:

$ go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.46.2
$ golangci-lint --version
bash: golangci-lint: command not found...
Run Code Online (Sandbox Code Playgroud)

我是不是少了一步?我怎样才能使这个本地安装工作?

dav*_*iod 8

如果 golang-ci 已正确安装,则问题很可能是安装目录不在您的PATH环境变量中。这样调用 golang-ci 应该可以工作:

${GOPATH}/bin/golangci-lint --version
Run Code Online (Sandbox Code Playgroud)

或者

/home/acabista/go/bin/golangci-lint --version
Run Code Online (Sandbox Code Playgroud)

要准确检查发生了什么,您可以检查环境变量的内容GOPATHgo install它的内容定义了运行类似命令时二进制文件的安装位置。

echo $GOPATH
Run Code Online (Sandbox Code Playgroud)

您还需要检查变量的内容是什么PATH,这个变量定义了 shell 在哪个目录中查找要执行的二进制文件:

echo $PATH
Run Code Online (Sandbox Code Playgroud)