在Ubuntu的Go容器中安装golint的方法

在Ubuntu的Go容器中安装golint的方法 向各位Go语言爱好者问好, 我正在参加Todd McLeod的流行Go语言在线课程学习这门语言,我仍在学习Go。 按照课程内容,在特定部分他安装了golint。

我有一个运行Go 1.12的64位Ubuntu容器/操作系统。

  • 它在cloud9环境中运行(虽然我认为这不会造成任何影响,但还是在此说明)。

其他所有使用Go的功能似乎都运行完美!

但当在终端中安装golint时,按照文档说明操作:https://github.com/golang/lint

charlesderek:~/workspace (master) $ go get -u golang.org/x/lint/golint
charlesderek:~/workspace (master) $ golint version
bash: golint: command not found
charlesderek:~/workspace (master) $ golint ./...
bash: golint: command not found

这些是我设置的Go环境变量:

charlesderek:~/workspace (master) $ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/ubuntu/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/ubuntu/workspace"
GOPROXY=""
GORACE=""
GOROOT="/opt/go"
GOTMPDIR=""
GOTOOLDIR="/opt/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build509048549=/tmp/go-build -gno-record-gcc-switches"

我读到这可能与环境变量中未正确设置golint路径有关,但不确定具体是什么或该如何操作。

上次我将路径从"/home/ubuntu/workspace"更改后,导致已安装的Go包无法正常工作,不得不清除所有内容并重新开始。

我该如何查看为什么没有安装golint?

诚挚的问候


2 回复

你还需要执行 go install <package>

func main() {
    fmt.Println("hello world")
}

在Go 1.12中,go get 默认不会将二进制安装到 $GOPATH/bin,除非明确设置 GOBIN 环境变量或使用模块模式。从你的环境变量看,GOBIN 为空,且未使用Go模块(GOMOD 为空),因此 golint 可能被安装到了 $GOPATH/bin,但该目录不在系统的 PATH 环境变量中。

首先,检查 golint 是否已安装在 $GOPATH/bin 中:

ls $GOPATH/bin/golint

如果文件存在,将 $GOPATH/bin 添加到 PATH 环境变量中:

export PATH=$PATH:$GOPATH/bin

然后测试 golint

golint version

要使此更改永久生效,将导出命令添加到你的 shell 配置文件中(例如 ~/.bashrc~/.profile):

echo 'export PATH=$PATH:'$GOPATH/bin >> ~/.bashrc
source ~/.bashrc

如果 golint 未安装在 $GOPATH/bin 中,重新安装它。在Go 1.12中,使用 -u 标志确保获取最新版本:

go get -u golang.org/x/lint/golint

安装后,确认二进制文件位置:

which golint

如果仍找不到,手动检查 $GOPATH/bin 并确保 PATH 包含该目录。你的 GOPATH/home/ubuntu/workspace,因此二进制路径应为 /home/ubuntu/workspace/bin/golint

示例代码验证安装:

  1. 创建一个简单的Go文件 test.go
package main

import "fmt"

func main() {
    fmt.Println("test for golint")
}
  1. 运行 golint
golint test.go

如果安装正确,这将输出任何linting警告或错误。

回到顶部