Em relação à possibilidade de executar binários do Golang que você instala com go get
ou go install
, você precisa adicionar o diretório "bin" do Golang ao seu $PATH
para que funcione.
Note que você realmente precisa ter uma variável $GOBIN
definida para que isso funcione. Se você não tiver um, simplesmente use algo assim em um de seus arquivos de inicialização (como ~/.bash_profile
):
PATH=$PATH:$HOME/go/bin
(Claro, se você definir $GOBIN
, use PATH=$PATH:$GOBIN
.)
Em relação a não ter as variáveis de ambiente Golang definidas, atualmente você não precisa delas para a maioria dos casos.
A variável $GOROOT
aponta para onde a instalação do Golang foi descompactada. Se você usar a distribuição "oficial", o padrão será /usr/local/go
, portanto, se você descompactar a distribuição nesse diretório, não precisará defini-la. As distribuições Linux geralmente customizam esse padrão para onde eles empacotam arquivos Golang, no caso de Manjaro, o mais sensato /usr/lib/go
. Independentemente disso, se você estiver usando um Golang empacotado de uma distro, ou se você descompactar o oficial para o local padrão, você não precisa desse conjunto de variáveis.
Em relação a $GOPATH
, costumava ser necessário, mas desde o Golang 1.8 agora é padronizado como ~/go
:
GOPATH
can be any directory on your system. In Unix examples, we will set it to$HOME/go
(the default since Go 1.8).
Então, novamente, se você está bem com os pacotes do Golang (por exemplo, aqueles que você usa go get
) sendo armazenados no local padrão, você não precisa configurá-lo também.
Por fim, $GOBIN
é padronizado para o diretório bin
em $GOPATH
, então você normalmente não precisa personalizá-lo também.
Como você notou, você pode usar go env
para checar qual é a noção de Golang sobre essas variáveis, se você deixá-las sem definição, nesse caso Golang deve usar os padrões descritos acima.
Claro, se você quiser se referir a estas variáveis a partir do shell, então você precisa configurá-las! O fato de Golang ter defaults para esses conceitos significa que será capaz de trabalhar com as variáveis não definidas ... Não que isso magicamente injetará essas informações em seu ambiente. E, mais uma vez, se você quiser os binários do Golang no seu $PATH
, você terá que configurar isso, veja as instruções no topo da resposta.