在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?
诚挚的问候
你还需要执行 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。
示例代码验证安装:
- 创建一个简单的Go文件
test.go:
package main
import "fmt"
func main() {
fmt.Println("test for golint")
}
- 运行
golint:
golint test.go
如果安装正确,这将输出任何linting警告或错误。

