~/src/go-statsd-client> echo $GOPATH
/Users/me/gopath
~/src/go-statsd-client> echo $GOROOT
/usr/local/Cellar/go/1.1.1\
~/src/go-statsd-client> go install
go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH
Independentemente da estrutura do projeto, sempre falha com a mesma mensagem. Ir construir funciona perfeitamente.
Aqui está o meu go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/gopath"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.1.1"
GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"
CGO_ENABLED="1"
Este é o Mac OSX Mountain Lion e foi instalado com o homebrew.
$GOPATH/bin
diretório. Criar essa pasta era o necessário - eu não precisava definirGOBIN
env var.PYTHONHOME
, em vez deGOROOT
ePYTHONPATH
em vez deGOPATH
. Mesmo (CG) C temLIBRARY_PATH
,C_INCLUDE_PATH
etc.export GOPATH=$PWD
(de pé na raiz de uma árvore de clones de Golang), sua resposta não pode explicar o erro nesse caso.GOPATH
, mas, do lado de fora, isso parece completamente irracional. Por que eu tenho de sofrer mutações variáveis de ambiente globais apenas para construir um pacote localmente 🤔Para qualquer usuário do OS X e para o futuro, você também precisa definir
GOBIN
para evitar essa mensagem confusa na instalação ego get
fonte
GOBIN
. Se configurá-lo para$GOPATH/bin
fazer a diferença, algo mais está errado com sua configuração ou você está fazendo algo que não deveria.Você está usando go install em um diretório fora da pasta GOPATH. Defina sua variável env do GOBIN ou mova a pasta src para dentro do GOPATH.
Mais informações: GO BUILD Código fonte , linha 296
fonte
Você precisa configurar ambos
GOPATH
eGOBIN
. Verifique se você fez o seguinte (substitua~/go
pelo seu preferidoGOPATH
e depois altereGOBIN
). Isso é testado emUbuntu 16.04 LTS
.A resposta selecionada não resolveu o problema para mim.
fonte
Você deseja ter 3 diretórios dentro do diretório GOPATH escolhido.
Em seguida, você executará a
go install
partir do someProgram (que coloca um executável em bin) ou someLibrary (que coloca uma biblioteca no pkg).fonte
Eu tive esse problema no Windows.
Meu problema era que minha
%GOPATH%
variável de ambiente estava definida comoC:\Users\john\src\goworkspace
ao invés de
C:\Users\john\src\goworkspace\
Adicionar a barra final no final foi corrigida para mim.
fonte
Pelo que vale, aqui está o meu .bash_profile, que funciona bem para mim em um mac com Atom, depois de instalar o ir com o Homebrew:
fonte
No meu caso (OS X), foi porque eu configurei
GOPATH
para/home/username/go
(conforme o livro) em vez de/Users/username/go
fonte
Estou no Windows e consegui-o, dando o comando
go help gopath
para cmd e li o texto em negrito na instrução,isto é, se o código que você wnat para instalar está em
..BaseDir...\SomeProject\src\basic\set
, a GOPATH não deve ser o mesmo local como o código, deve ser apenas base do projeto DIR:..BaseDir...\SomeProject
.se GOPATH tiver sido definido como Projeto Base DIR e ainda tiver esse problema, no Windows você pode tentar definir GOBIN como
Base Project DIR\bin
ou%GOPATH%\bin
.fonte
Cuidado ao executar
Vá supor que seu código exista em locais específicos relacionados a
GOPATH
. Portanto, você pode usar o docker para executar qualquer comando go:E agora você pode usar qualquer comando golang, por exemplo:
fonte
No Windows, minha janela do cmd já estava aberta quando eu defini a variável de ambiente GOPATH. Primeiro tive que fechar o cmd e reabri-lo para que ele se tornasse eficaz.
fonte
O problema é que você não está no diretório do pacote que possui o arquivo go com a função go main e a instalação go não pode encontrar o comando (arquivo go com a função go main) que deseja instalar.
e então execute:
fonte
No OSX Mojave 10.14, normalmente
go
é instalado em ./usr/local/go
Portanto, configure esses ENVs e você deve estar pronto.
export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin
Além disso, adicione-os ao seu
bash_profile
ouzsh_profile
se funcionar.echo "export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin" >> ~/.bash_profile && source ~/.bash_profile
fonte