golang 的 GOPATH 和 GOROOT 哪个是安装全局的第三方包的?

Python 安装的第三方包都会统一安装到一个目录下(比如:/home/bot/.local/lib/python3.10/site-packages),所有的项目都从那里导包。

golang 的 第三方包管理机制是什么样子的?

为什么要有 GOPATHGOROOT 这种东西?他们对包的存储和导包有什么关系?

JAVA_HOME 有什么区别?

golang 有类似 Python 的集约化管理第三方包的方式吗?千万别是每个项目都是独立安装第三方包吧!

为什么我会有这个疑问?因为我看到一堆教程里面都是把每个项目都给一个 GOPATH,然后安装的东西都是安装在 GOPATH 下面?有 100 个项目要重复安装 100 次?

去哪里看所有安装的第三方包?

全局安装就是一个第三方包 XXX 只在硬盘上存一份,10000个项目公用那一份,而不是 10000 个项目都需要安装 10000 次这个 xxx 第三方包
阅读 2.3k
2 个回答

仅供供参考:


go env //可以显示golang环境变量

GOPATH and GOROOT 是golang中的环境变量,其容易可以更改;
GOROOT: 存放与golang相关的 compiler 和 tools;
GOPATH 之前是项目的工作目录(workspace);
When using modules, GOPATH is no longer used for resolving imports.
However, it is still used to store downloaded source code (in GOPATH/pkg/mod) and compiled commands (in GOPATH/bin)

gopath依赖包在: $GOPATH/src,gomod依赖包在: $GOPATH/pkg/mod,如果GOPATH包含多个目录,那么依赖会放到GOPATH的第一个目录的自路径下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题