В Go пакеты, полученные с помощью команды go get
, сохраняются в двух разных директориях, в зависимости от того, является ли пакет частью стандартной библиотеки Go, или же является внешней зависимостью.
- Для стандартной библиотеки Go пакеты сохраняются в директории, называемой
GOROOT
. Эта директория представляет собой корень установленной вами версии Go. По умолчанию,GOROOT
задается при установке Go и указывает наместо, где установлена версия Go на вашей системе. В директорииGOROOT
есть поддиректорияpkg
, в которой хранятся скомпилированные файлы пакетов стандартной библиотеки Go.
- Внешние зависимости, полученные с помощью команды
go get
, сохраняются по умолчанию в директории, называемойGOPATH
.GOPATH
указывает на директорию, в которой хранятся ваши проекты Go и все их зависимости. При установке Go, по умолчанию создается директорияGOPATH
, которая используется для этой цели. ВGOPATH
есть поддиректории:src
,bin
иpkg
. В директорииsrc
хранятся исходные файлы вашего проекта Go и зависимостей, в директорииbin
хранится исполняемые файлы, собранные из вашего проекта Go, и наконец, в директорииpkg
хранятся скомпилированные файлы зависимостей.
Таким образом, стандартные пакеты Go сохраняются в GOROOT/pkg
, а внешние зависимости сохраняются в GOPATH/pkg
. Эта структура директорий позволяет легко управлять зависимостями в проектах Go и обеспечивает их правильную организацию.