$ GOPATH目录和磁盘空间

时间:2017-02-18 07:03:05

标签: go diskspace

用GO开发一两年之后,我看了一下我的$ GOPATH目录大小,并惊讶地看到它增长到了4GB。

据我所知,假设磁盘空间(并且在这款128GB笔记本电脑固态硬盘上并没有那么多)便宜但仍然存在。

所以我的问题是,管理大小的$ GOPATH目录是否有一些好的做法?

从头开始重启是个好主意吗? (虽然可能非常耗时)

1 个答案:

答案 0 :(得分:2)

您的声明,删除GOPATH会非常耗时,听起来您正在使用普通go get ...来管理Go项目的依赖关系。在我的环境中,我做了两件事来制作GOPATH短暂的。

  1. 不要使用普通go get进行依赖关系管理。 Go 1.6引入了/vendor目录。与Glide之类的依赖关系管理工具一起,某个项目的每个依赖项都位于项目目录中。

    1. 这意味着,如果不再需要依赖项,您可以擦除项目的vendor目录并再次下载依赖项。因此,您只需依赖磁盘,而实际需要它。

    2. 此外,如果您停止处理项目并将其从磁盘中删除,则依赖项也会被删除。

  2. 您可以在GOPATH中指定多个路径。与PATH环境变量一样,您可以用冒号分割它们。有趣的是,Go使用第一条路径下载项目。在我的计算机上,GOPATH看起来像$HOME/.gopath:$HOME/projects。因此,如果将所有实际项目放入第二个目录,您将在项目和依赖项之间实现明确的分离。因此,您可以不时擦除第一个目录,但不必担心必须再次克隆每个项目。

  3. 这两件事无助于减少Go项目及其依赖项的磁盘使用量,但是您可以更好地了解实际需要的内容,并使您能够随时删除依赖项目录。