Go工具安装成功但未出现在$GOPATH/bin目录下。

3

我在VSCode中安装了Go工具,终端显示成功安装:

Tools environment: GOPATH=/home/spindrift/go
Installing 1 tool at /home/spindrift/go/bin in module mode.
  gopls

Installing golang.org/x/tools/gopls (gopls) SUCCEEDED

All tools successfully installed. You are ready to Go :).

安装VSCode后一直提示“正在查询gopls,但找不到”。

于是我查看了$GOPATH/bin文件夹,发现里面只有一个dlv-dap!

我检查了我的配置工具:

Checking configured tools....
GOBIN: undefined
toolsGopath: 
gopath: /home/spindrift/go
GOROOT: /usr/local/go
PATH: /usr/local/go/bin:/home/spindrift/.vscode-server/bin/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files/WindowsApps/Microsoft.WindowsTerminal_1.12.10732.0_x64__8wekyb3d8bbwe:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/DevelopTools/Maven/apache-maven-3.2.5/bin:/mnt/c/DevelopTools/mingw64/mingw64/bin:/mnt/c/DevelopTools/Matlab2018a/runtime/win64:/mnt/c/DevelopTools/Matlab2018a/bin:/mnt/c/DevelopTools/Lingo/:/mnt/c/DevelopTools/MongoDB/Server/bin:/mnt/c/DevelopTools/Git/cmd:/mnt/c/DevelopTools/mysql/bin:/mnt/c/DevelopTools/anaconda3:/mnt/c/DevelopTools/anaconda3/Scripts:/mnt/c/DevelopTools/anaconda3/Library/bin:/mnt/c/WINDOWS/system32:/mnt/c/DevelopTools/Go/bin:/mnt/c/DevelopTools/scala/bin:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Libra/AppData/Local/Microsoft/WindowsApps:/mnt/c/DevelopTools/VSCode/Microsoft VS Code/bin:/mnt/c/Software/Bandizip/:/mnt/c/Users/Libra/AppData/Roaming/npm:/mnt/c/DevelopTools/nodejs:/mnt/c/Users/Libra/go/bin:/mnt/c/Users/Libra/.dotnet/tools:/snap/bin
PATH (vscode launched with): /home/spindrift/.vscode-server/bin/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files/WindowsApps/Microsoft.WindowsTerminal_1.12.10732.0_x64__8wekyb3d8bbwe:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/DevelopTools/Maven/apache-maven-3.2.5/bin:/mnt/c/DevelopTools/mingw64/mingw64/bin:/mnt/c/DevelopTools/Matlab2018a/runtime/win64:/mnt/c/DevelopTools/Matlab2018a/bin:/mnt/c/DevelopTools/Lingo/:/mnt/c/DevelopTools/MongoDB/Server/bin:/mnt/c/DevelopTools/Git/cmd:/mnt/c/DevelopTools/mysql/bin:/mnt/c/DevelopTools/anaconda3:/mnt/c/DevelopTools/anaconda3/Scripts:/mnt/c/DevelopTools/anaconda3/Library/bin:/mnt/c/WINDOWS/system32:/mnt/c/DevelopTools/Go/bin:/mnt/c/DevelopTools/scala/bin:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Libra/AppData/Local/Microsoft/WindowsApps:/mnt/c/DevelopTools/VSCode/Microsoft VS Code/bin:/mnt/c/Software/Bandizip/:/mnt/c/Users/Libra/AppData/Roaming/npm:/mnt/c/DevelopTools/nodejs:/mnt/c/Users/Libra/go/bin:/mnt/c/Users/Libra/.dotnet/tools:/snap/bin:/usr/local/go/bin

    go: /usr/local/go/bin/go: go version go1.18.1 linux/amd64

    gopkgs: not installed
    go-outline: not installed
    gotests:    not installed
    gomodifytags:   not installed
    impl:   not installed
    goplay: not installed
    dlv:    not installed
    dlv-dap:    /home/spindrift/go/bin/dlv-dap: go1.18.1
        path    github.com/go-delve/delve/cmd/dlv
        mod github.com/go-delve/delve   v1.8.3-0.20220413222856-313815782614    h1:J92Zq5+vc+zzd0Gn69RxVUUC3orKgciGmurMPUSci4I=
        dep github.com/cilium/ebpf  v0.7.0  h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k=
        dep github.com/cosiner/argv v0.1.0  h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
        dep github.com/cpuguy83/go-md2man/v2    v2.0.0  h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
        dep github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9  h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=
        dep github.com/go-delve/liner   v1.2.2-1    h1:0hGpZh6vjI6LFTlXuHFCX9PebaluzDzps2owdMrrSuk=
        dep github.com/google/go-dap    v0.6.0  h1:Y1RHGUtv3R8y6sXq2dtGRMYrFB2hSqyFVws7jucrzX4=
        dep github.com/hashicorp/golang-lru v0.5.4  h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
        dep github.com/mattn/go-isatty  v0.0.3  h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=
        dep github.com/mattn/go-runewidth   v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
        dep github.com/rivo/uniseg  v0.2.0  h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
        dep github.com/russross/blackfriday/v2  v2.0.1  h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
        dep github.com/shurcooL/sanitized_anchor_name   v1.0.0  h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
        dep github.com/sirupsen/logrus  v1.6.0  h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
        dep github.com/spf13/cobra  v1.1.3  h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
        dep github.com/spf13/pflag  v1.0.5  h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
        dep go.starlark.net v0.0.0-20200821142938-949cc6f4b097  h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=
        dep golang.org/x/arch   v0.0.0-20190927153633-4e8777c89be4  h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=
        dep golang.org/x/sys    v0.0.0-20211117180635-dee7805ff2e1  h1:kwrAHlwJ0DUBZwQ238v+Uod/3eZ8B2K5rYsUHBQvzmI=
        dep gopkg.in/yaml.v2    v2.4.0  h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
        build   -compiler=gc
        build   CGO_ENABLED=1
        build   CGO_CFLAGS=
        build   CGO_CPPFLAGS=
        build   CGO_CXXFLAGS=
        build   CGO_LDFLAGS=
        build   GOARCH=amd64
        build   GOOS=linux
        build   GOAMD64=v1
    
    staticcheck:    not installed
    gopls:  not installed

看起来我没有成功安装go工具。尝试了几次,但问题仍未解决。

这是我的go env

GO111MODULE="auto"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/spindrift/.cache/go-build"
GOENV="/home/spindrift/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/spindrift/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/spindrift/go"
GOPRIVATE=""
GOPROXY="https://goproxy.cn,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.1"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
GOWORK=""
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-build1163911802=/tmp/go-build -gno-record-gcc-switches"

我不知道vscode是否在内部检查它,但/home/spindrift/go/bin不在你的PATH中。 - JimB
由于$GOBIN未定义,这些二进制文件可能位于$GOTOOLDIR$GROOT/bin中。 - whitespace
我将 /home/spindrift/go/bin 添加到 PATH 中,但问题仍然存在。 - Libra Tang
奇怪。如果你从终端或者VSCode集成终端中运行go install -x -v golang.org/x/tools/gopls@latest,它会告诉你gopls安装在哪里吗? - Hana
它说在模块模式下安装1个工具到/home/spindrift/go/bin。但实际上,在安装后这个路径中没有任何东西。@Hana - Libra Tang
@LibraTang 我的意思是尝试使用go命令(go install -x -v ...),看看是否有帮助或者你能否重现这个问题。 - Hana
4个回答

4

它解决了我的困惑。谢谢! - Libra Tang

1

您的$PATH中没有GOBIN。

最简单的方法是在$HOME的.bashrc / .zshrc文件中添加一行代码: PATH=$PATH:$HOME

在此处了解更多关于$PATH的信息


我将GOBIN添加到$PATH中,但问题仍然存在。 - Libra Tang
可能还没有应用。您需要重新启动终端或使用命令 source YOUR_SOURCE_FILE 进行应用(其中 YOUR_SOURCE_FILE~/.bashrc~/.zshrc)@LibraTang - Khoa Le
我确定它被应用了。 - Libra Tang
问题与PATH变量无关,而是由于go扩展中的一个错误导致的,该错误现已得到修复。 - crs

0

一些配置从“GOENV”文件中获取。 确保该文件中的参数有效,特别是查找其中的“GOROOT”。 它应该与您的GO可执行文件路径完全匹配。(在大多数情况下,它可能是/usr/local/go)

如果无效,请更新值并重试。


-1

尽管gopls存在于GOPATH和GOROOT中,但VS Code仍然抱怨找不到gopls。

配置工具输出显示gopls和其他工具已正确安装。 go版本1.17.12


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Jeff Allen
目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接