本文详解在 ubuntu 14.04 中通过 `go get` 安装 json2csv 后命令不可用的常见原因及解决方案,核心在于将 `$gopath/bin` 正确添加至系统 `path` 环境变量。
虽然 go get github.com/jehiah/json2csv 成功下载并编译了可执行文件(位于 $GOPATH/bin/json2csv),但终端仍提示 command not found,根本原因是:Linux shell 默认不会在 $GOPATH/bin 目录中查找命令。该目录未被包含在 PATH 环境变量中,因此即使二进制文件存在且具备执行权限,Shell 也无法定位并运行它。
确认当前 GOPATH 设置
运行以下命令验证路径是否一致:
echo $GOPATH # 应输出:/home//projects/go ls -l $GOPATH/bin/json2csv # 应显示可执行文件(如 -rwxrwxr-x)
将 $GOPATH/bin 加入 PATH
编辑 ~/.bashrc(或 ~/.profile,若使用非交互式 Shell):
echo 'export PATH=$GOPATH/bin:$PATH' >> ~/.bashrc source ~/.bashrc
⚠️ 注意:不要写成 export PATH=$GOPATH/bin:/usr/bin/go/bin:$PATH —— GOROOT 指向 /usr/bin/go 是错误的(GOROOT 应指向 Go 的安装根目录,如 /usr/lib/go 或 /usr/local/go;而 /usr/bin/go 只是可执行文件链接,非目录)。本例中 GOROOT 设置虽不影响 json2csv 运行,但建议修正为:export GOROOT=/usr/lib/go # Ubuntu 14.04 默认位置,可通过 `dpkg -L golang-go` 确认
验证生效
echo $PATH | grep "bin" # 应看到类似 /home//projects/go/bin 出现在路径开头 which json2csv # 应返回 /home/ /projects/go/bin/json2csv json2csv --help # 应正常输出帮助信息
完成上述配置后,json2csv 即可在任
