Estou tentando fazer um go get
:
go get github.com/go-sql-driver/mysql
e falha com o seguinte erro:
package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
quando eu faço a go env
, uma lista de valores Go é mostrada abaixo:
ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
claramente o GOPATH não está definido, como e onde devo defini-lo?
Vejo muitos tópicos que mencionam esse erro, mas nenhum que responda à minha pergunta. Qual arquivo precisa ser editado para fornecer um valor para esse caminho?
GOPATH
para você: veja minha resposta abaixo .Respostas:
Nova maneira:
Confira esta resposta.
À moda antiga:
Basta adicionar as seguintes linhas ao ~ / .bashrc e isso persistirá. No entanto, você pode usar outros caminhos que você gosta como GOPATH em vez de $ HOME / go na minha amostra.
fonte
/usr/share/go
no meu Ubuntu 13.10.$ source ~/.bashrc
;)Ubuntu 14.04
Além disso, você pode adicionar essa sequência ao arquivo
fonte
GOPATH deve ser definido como um diretório vazio recém-criado. Este é o "espaço de trabalho", onde ele baixa pacotes, etc. Eu uso ~ / .go.
Por exemplo:
fonte: http://www.larry-price.com/blog/2013/12/15/setting-up-a-go-environment-in-ubuntu-12-dot-04/
fonte
Nova maneira: Go Modules
Desde o Go 1.11, você não precisa mais usar o GOPATH. Basta ir ao diretório do projeto e fazer isso uma vez:
Caminho Antigo: GOPATH
Se você insiste em trabalhar com o GOPATH, preste atenção:
A partir da documentação :
fonte
Se, por exemplo, for um Ubuntu, após a instalação dos pacotes:
Basta adicionar as seguintes linhas ao ~ / .bashrc (do seu usuário)
fonte
Não há necessidade de editar nenhum arquivo, podemos apenas usar o comando acima para editar diretamente as variáveis de ambiente Go.
fonte
Escreva este código no terminal.
Nota : Isso será redefinido a cada nova janela do Terminal ou reinicialização do sistema.
Para ser persistente, cole o código abaixo no seu arquivo
.zshrc
ou de.bashrc
acordo com seu shell. Esses arquivos em seu diretório pessoal . Será como abaixo.fonte
Você precisará do GOPATH mais tarde também. Então adicione-o a
~/.bashrc
.fonte
Se você configurou algo que precisa de modificação de variáveis de ambiente, como Java, Go, etc, isso será muito familiar.
Assumirei que você tenha a seguinte estrutura de diretórios em algum lugar como o caminho Ir:
sudo nano /etc/environment
PATH=...
e vá até o final e adicione dois pontos:
após o último caminho e cole na sua totalidade,go path
por exemplo/home/user/gocode
e pronto, isso deve torná-lo persistente no sistema.
fonte
Foi isso que o fez funcionar para mim no Ubuntu 15.10 usando o
fish shell
:Então eu tive que alterar as permissões na
go
pasta (foi definida como raiz)fonte
O caminho go pode estar em todos os lugares em que você deseja criar um diretório e definir a variável de caminho global no nome de GOPATH para o seu ambiente.
fonte
Com o Go 1.8 (Q2 2017), você não precisará editar nenhum arquivo se aceitar o
GOPATH
valor padrão (definido para você)Você pode ver os comentários na edição 17262 e o voto associado no twitter :
fonte
Meu ambiente de trabalho era semelhante ao seu.
Eu o resolvi definindo GOPATH como / usr / lib / go . Experimente.
fonte
GOPATH é uma variável de ambiente para a sua localização no espaço de trabalho. GOROOT é uma variável de ambiente para o diretório de instalação. Embora GOROOT e GOPATH sejam definidos automaticamente (se não houver um erro) durante o tempo de instalação, para especificá-lo manualmente, você pode seguir o processo abaixo. Além disso, para obter mais informações, consulte a página wiki do GO .
É melhor definir GOPATH como um diretório dentro do seu diretório pessoal, por exemplo, $ HOME / go,% USERPROFILE% \ go (Windows).
No seu tipo de terminal
no documento aberto no Terminal, pressione i e adicione o seguinte caminho
pressione ESC e digite : x . Por fim, você deve reiniciar ( fechar e abrir ) seu terminal ou Logout e Login novamente.
CUIDADO Não defina GOROOT e GOPATH no mesmo diretório, caso contrário, você receberá um aviso.
fonte
E você pode verificar por $ go env
fonte
(Ubuntu)
Se você não definir um GOPATH, o padrão será usado.
Você precisa adicionar $ GOPATH / bin ao seu PATH para executar qualquer binário instalado em $ GOPATH / bin ou precisa digitar $ GOPATH / bin / the-command. Adicione isso ao seu ~ / .bash_profile
Comando atual do GOPATH:
Alterando o comando GOPATH:
fonte
Essa tem sido a coisa mais irritante de se lidar. Na esperança de economizar seu tempo.
IF go foi instalado como usuário root. O usuário root do arquivo de texto bash_profile do sistema ~ / .bash_profile precisa ter $ GOROOT designado ao diretório go install e $ GOPATH precisa ser designado ao diretório go / src.
verifique se o caminho a ser binário está no seu caminho em .bash_profile
PATH = $ PATH: $ HOME / bin: / usr / local / bin: / usr / local / go / bin
Esse PATH pode ter o tamanho de uma string que precisa ser .. para adicionar novos itens, basta separar dois pontos:
saia do editor vi e salve o perfil do bash (: wq significa write and quit)
Você precisa sair do terminal e fazer login novamente para que o perfil seja iniciado novamente .. ou você pode simplesmente iniciar usando a exportação.
Você pode verificar go env:
Yay!
Agora você pode sudo and go, poderá baixar e criar diretórios dentro de go / src, e você pode se concentrar no que estava tentando fazer.
exemplo
Agora você terá outro problema ... talvez não tenha o git instalado .. essa é outra aventura .. :)
fonte
go get
colocar nada em qualquer lugar próximoGOROOT
.Na minha máquina Fedora 20, adicionei as seguintes linhas ao meu ~ / .bashrc:
fonte
GOROOT
. (A menos que você está no extremamente pequeno subconjunto de pessoas que usa uma distribuição binária de ir, mas instalá-lo em algum lugar onde não-padrão.)Outra solução: exporte todas
GO*
as variáveis de ambiente dego env
.bashrc:
fonte
eval
geralmente é uma má idéia e um exagero nessa situação IMHOGOPATH
únicaEdite seu
~/.bash_profile
para adicionar a seguinte linha:Salve e saia do seu editor. Em seguida, obtenha seu
~/.bash_profile
Nota: Defina o caminho GOBIN para gerar um arquivo binário quando a instalação for executada
fonte
Este script irá ajudá-lo a mudar os Gopaths. https://github.com/buffonomics/goswitch
fonte
Conforme escrito nas instruções oficiais :
Por exemplo, se você estiver codificando no Jetbrains Webstorm (usando o plug-in Go ), convém definir
GOPATH
como/Users/<user>/WebstormProjects
.Em palavras mais simples, defina-o onde quiser que seus projetos Go residam.
fonte
Você pode usar a solução "export" exatamente como o que outros caras sugeriram. Gostaria de fornecer outra solução para conveniência permanente: você pode usar qualquer caminho como GOPATH ao executar os comandos Go.
Primeiramente, você precisa baixar uma pequena ferramenta chamada
gost
: https://github.com/byte16/gost/releases . Se você usa o ubuntu, pode baixar a versão linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Então você precisa executar os comandos abaixo para descompactá-lo:
Você obteria um executável
gost
. Você pode movê-lo/usr/local/bin
para um uso conveniente:Execute o comando abaixo para adicionar o caminho que você deseja usar como GOPATH no espaço de caminho
gost
mantém. É necessário dar ao caminho um nome que você usaria posteriormente.Execute qualquer comando Go desejado no formato:
Por exemplo, você deseja executar
go get github.com/go-sql-driver/mysql
com/home/foobar/bar
como o GOPATH, apenas fazê-lo como abaixo:Ajudaria você a definir o GOPATH e executar o comando. Mas lembre-se de que você adicionou o caminho no espaço
gost
de caminhos do . Se você estiver em qualquer nível de subdiretórios de/home/foobar/bar
, você pode até mesmo executar o comando abaixo, que faria o mesmo em breve:gost
é uma ferramenta simples de Go, que pode ajudá-lo a gerenciar GOPATHs e executar comandos Go. Para mais detalhes sobre como usá-lo para executar outros comandos Go, você pode simplesmente executargost help goCmdName
. Por exemplo, para saber maisinstall
, basta digitar as palavras abaixo em:Você também pode encontrar mais detalhes no README do projeto: https://github.com/byte16/gost/blob/master/README.md
fonte
Você precisa atualizar o PATH com base no terminal (bash ou zsh) usado.
~/.bashrc
ou seja,~/.zshrc
em um editorexport GOPATH=$HOME/go:/$HOME/projects/go
Aqui você pode adicionar um ou mais caminhos separados por ponto e vírgula
:
de diferentes locais dos seus projetos GO no sistema àGOPATH
variável de ambiente, ou seja,/path/1:path/2:path/3
etc.No meu caso, adicionei 2 caminhos, como mostrado acima, um da raiz
$HOME/go
e outro do diretório de projetos:/$HOME/projects/go
fonte