
本文详解在 ubuntu 14.04 中通过 go get 安装 json2csv 后命令不可用的常见原因,重点说明 gopath/bin 未加入 path 导致的执行失败问题,并提供完整、可复现的环境配置方案。
当你执行 go get github.com/jehiah/json2csv 成功后,Go 工具链会将编译生成的可执行文件(如 json2csv)默认放置在 $GOPATH/bin/ 目录下(而非当前目录或系统级 PATH 路径中)。尽管你已确认 ~/projects/go/bin/json2csv 存在且具备可执行权限,但终端仍提示 command not found,根本原因在于 shell 无法在当前 PATH 中定位该二进制文件。
✅ 正确做法是将 $GOPATH/bin 显式添加到 PATH 环境变量前端,确保系统优先搜索该路径:
# 编辑 ~/.bashrc(推荐方式) echo 'export PATH=$GOPATH/bin:$PATH' >> ~/.bashrc source ~/.bashrc
⚠️ 注意事项:
- 不要将 GOROOT 设为 /usr/bin/go —— GOROOT 应指向 Go 的安装根目录(如 /usr/lib/go 或 /usr/local/go),而非 go 可执行文件路径。Ubuntu 14.04 默认通过 apt-get install golang 安装时,正确值通常为 /usr/lib/go;可通过 go env GOROOT 验证。
- GOPATH 是你个人工作区路径(如 $HOME/projects/go),用于存放源码(src/)、包(pkg/)和可执行文件(bin/),必须与 go get 下载路径一致。
- 修改 ~/.bashrc 后务必执行 source ~/.bashrc 或重启终端,使变更生效。
- 验证配置是否成功:
echo $PATH | grep "bin" which json2csv # 应输出:/home/
/projects/go/bin/json2csv json2csv --help # 应正常显示帮助信息
完成上述配置后,json2csv 即可在任意目录下直接调用,无需切换路径或加 ./ 前缀。这是 Go 生态中所有通过 go get 安装命令行工具的标准启用流程。










