2015-10-29 7 views
0

Я пытаюсь построить packer, и я получаю эту ошибку:Building упаковщик вызывает разрешение отказано ошибка

go install golang.org/x/tools/cmd/vet: open /usr/lib/go/pkg/tool/linux_amd64/vet: permission denied 
Makefile:40: recipe for target 'test' failed 
make: *** [test] Error 1 

ли установщик пытается получить доступ к моей/USR папку? Должен ли я запускать это под root? Как я могу это исправить?

+1

Какая версия Go вы используете? Если вы установите 'go vet', он должен работать. – jmaloney

+0

go версия go1.4.2 linux/amd64. Я установил go, используя мой менеджер пакетов os (gentoo) –

+0

export GOPATH = $ HOME – kostya

ответ

0

go vet является особенным, поскольку это инструмент, который должен быть включен в GOROOT. В большинстве установок GOROOT также доступен для записи пользователем, но если вы установили его с помощью диспетчера пакетов, этого не будет.

Чтобы обойти эту проблему, вы можете сделать это, как корень, чтобы избежать изменения каких-либо разрешений в вашем GOPATH:

GOPATH=/tmp/tmpGOPATH go get golang.org/x/tools/cmd/vet 
rm -rf /tmp/tmpGOPATH 

С vet это инструмент, предоставляемый официальной дистрибуции, что не она установлена, может считаться ошибка в пакете go gentoo. Официальный бинарный дистрибутив go включал в себя следующие инструменты:

addr2line 
api 
asm 
cgo 
compile 
cover 
dist 
doc 
fix 
link 
nm 
objdump 
pack 
pprof 
tour 
trace 
vet 
yacc