Куда сохраняются пакеты go get?

В 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 и обеспечивает их правильную организацию.