Глиф Учебники

go: command not found — команда go не найдена

Справочник · Go · 2 минуты чтения

Сообщение значит, что оболочка не нашла программу go ни в одной папке из списка PATH — переменной, где перечислены папки с командами. Go либо не установлен, либо установлен, но его папки bin нет в PATH, либо окно терминала открыто раньше, чем изменился PATH.

Как выглядит ошибка:

ГдеСообщение
Linux, bashgo: command not found
UbuntuCommand 'go' not found, but can be installed with: …
macOS, zshzsh: command not found: go
Windows, cmd"go" не является внутренней или внешней командой…
Windows, PowerShellИмя "go" не распознано как имя командлета…

Сначала — новое окно терминала

Закройте терминал и откройте новый. Окна, открытые до установки Go, не видят изменений PATH. В VS Code перезапустите редактор целиком: встроенный терминал наследует старый PATH. Часто этого достаточно.

Если не помогло — проверьте PATH

Где искать Go и как добавить его в PATH, зависит от системы — выберите свою.

Linuxархив с go.dev

Если Go ставили архивом с go.dev, команда лежит в /usr/local/go/bin. Проверьте, что она там есть:

Bash
ls /usr/local/go/bin

В списке должны быть go и gofmt. Если папки нет — Go не установлен, поставьте его по справке Как установить Go. Если есть — добавьте её в PATH:

Bash
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
source ~/.profile
go version

~/.profile читается при входе в систему; source применяет его к текущему окну. Если в новых окнах команда снова пропадает, а сеанс вы не перезапускали, выйдите из системы и войдите снова.

Дальше: «sudo: go: command not found»

macOSустановщик .pkg

Установщик .pkg прописывает путь сам — через файл /etc/paths.d/go. Проверьте, что он есть:

Bash
cat /etc/paths.d/go

Должно быть /usr/local/go/bin. Если файла нет, переустановите Go из .pkg или допишите строку export PATH=$PATH:/usr/local/go/bin в ~/.zshrc (файл настроек оболочки zsh) и откройте новое окно терминала.

Дальше: «sudo: go: command not found»

Windowsустановщик .msi

Установщик .msi сам добавляет в PATH папку bin внутри папки Go (обычно C:\Program Files\Go\bin). Проверьте в новом окне командной строки:

Командная строка
where go

Команда покажет полный путь к go.exe. Если пишет, что не нашла, — откройте «Изменение системных переменных среды» (поиск в меню «Пуск» по слову «переменные»), нажмите «Переменные среды» и в списке Path проверьте, есть ли там папка bin из папки Go. Нет — добавьте её или переустановите Go тем же установщиком.

sudo: go: command not found

От обычного пользователя go работает, а с sudo — нет. Это нормально: sudo запускает команды со своим безопасным списком папок, а не с вашим PATH. Собирать и запускать программы на Go через sudo не нужно. Если программе действительно нужны права root (например, порт ниже 1024), соберите её go build от своего пользователя и запустите готовый файл: sudo ./server.

Не находятся gopls, goimports и другие утилиты

Программы, поставленные командой go install, лежат не рядом с go, а в $HOME/go/bin (в Windows — %USERPROFILE%\go\bin). Добавьте в PATH и эту папку — команда для Linux:

Bash
echo 'export PATH="$PATH:$(go env GOPATH)/bin"' >> ~/.profile

В Windows проверьте, есть ли эта папка в списке Path пользователя, и добавьте её, если нет, — так же, как папку bin выше.