bash - 安装 json2csv 时出现 $GOPATH 错误

标签 bash go

我正在运行 Linux 3.16.0-4-amd64 x86_64。 我想安装 json2csv。

我尝试:

sudo  go get github.com/jehiah/json2csv

并得到:

package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help gopath

go 已安装:

GOARCH="amd64" 
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64" 
CC="gcc" 
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++" 
CGO_ENABLED="1"

我设置:

export GOROOT=/usr/bin/go
export GOPATH=$HOME/projects/go

但我仍然得到同样的错误。

有什么想法吗?

最佳答案

原因是您在使用 sudo 时丢失了一些 ENV。
你可以使用 -E 来保存它。

你可以在这里查看:
https://linux.die.net/man/8/sudo

但是你应该使用 sudo 去获取。

顺便说一下,您可以将 env 保存在 .bash_profile 中,这样它就可以自动加载。


在这种情况下,你应该设置GOROOTGOPATH

export GOROOT=/usr/local/go
export GOPATH=$HOME/projects/go

注意GOROOT是go的文件夹,不是go的二进制文件。

然后,不用 sudo 就可以了。

go get github.com/jehiah/json2csv

关于bash - 安装 json2csv 时出现 $GOPATH 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40743087/

相关文章:

regex - sed 在换行符中匹配模式

运行少量脚本的 linux 从中央脚本启动

go - 在 slice 上调用 len() 有多快?

go - 使用模块在 go 中进行版本化导入失败

go - Kubernetes client-go Remotecommand Stream 何时完成?

go - 如何在 Go 中解析日历周数

linux - 无需创建中间文件即可高效传输控制台数据、tar 和 gzip/bzip2

bash - 无法在 shell 脚本中运行 ssh

macos - 在 shell 脚本中抑制信号输出,如 "Abort trap: 6",用于应该崩溃的测试

google-app-engine - 从另一个应用程序/项目访问 Google Cloud Datastore