一、问题现象

在Flatpak中使用Vs Code配置Golang开发环境的时候Go插件总是提示无法配置,怎么设置都无法成功.

Failed to find the "go" binary in either GOROOT() or 
PATH(/app/bin:/usr/bin:/home/tianliang/.var/app/com.visualstudio.code/data/node_modules/bin).
Check PATH, or Install Go and reload the window. If PATH isn't what you expected, 
see https://github.com/golang/vscode-go/issues/971

二、问题原因

Flatpak在运行的时候是沙盒环境,对宿主系统的关键位置都进行了屏蔽.虽然可以通过--filesystem=host来指定宿主机的全局映射,但是关键位置如/bin/sbin/boot/etc等位置还是不能映射.
自己Gloang的安装位置在 /opt/google/go 同样也是无法成功设置.

三、解决办法

  • 1.将Golang的位置放到一个VS Code能看到的目录
    自己就是将 /opt/google/go 给软链接到了 $HOME/bin 目录下,然后在VS Code中设置 $HOME/bin/goGOROOT.

  • 2.不使用Flatpak版本的VS Code
    Flathub源中的 VSCodiumVisual Studio Code 都是无法正常配置的,接受不了方案1的朋友只能放弃flatpak版了.

参考资料

The extension cannot find the go executable in PATH when used with flatpak