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