Задать вопрос
@wargych

В чем может быть проблема с правами при попытке выполнения компиляции golang?

Прошу совета следующей ситуации.
Установил виртуалку linux mint, в ней установил golang.
При попытке компиляции и других команд без рута выпадает ошибка, что недостаточно прав. А при попытке выполнения тех же команд под sudo выпадает ошибка, что команда "go" неизвестна:

user@user-virtual-machine:/home/work/src$ go mod init mm
go: creating new go.mod: module mm
go: updating go.mod: open /home/work/src/go.mod: permission denied
user@user-virtual-machine:/home/work/src$ sudo go mod init mm
sudo: go: command not found
user@user-virtual-machine:/home/work/src$ go build
go build _/home/work/src: copying /tmp/go-build4142243374/b001/exe/a.out: open src: permission denied
user@user-virtual-machine:/home/work/src$ sudo go build
sudo: go: command not found

Подозреваю, что дело тут в правах, но в чем конкретно пока не понимаю. С линуксами знаком поверхностно.
  • Вопрос задан
  • 1231 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Вам нужно разобраться правами.

Если хотите чтобы собиралось от вашего пользователя, не под рутом - тогда
нужно сделать чтобы вы были владельцем папки с проектом, это можно сделать вот так sudo chown -R ваш_логин /home/work/src и установить правильные права на папку /tmp chmod 777 /tmp

Под рутом не находит go потому, что его бинарники не в PATH, нужно выполнить что-то типа такого export PATH=$PATH:/usr/lib/golang/bin
Но нужно сначала найти где у вас лежит Go.
Можно под обычным пользователем, где Go находит выполнить which go, ответ может быть таким /usr/lib/golang/bin/go - тогда нужно прописать как я написал.
Если не получится - пишите, постараюсь помочь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы