Home  >  Article  >  Backend Development  >  Installing Golang on MacOS

Installing Golang on MacOS

PHPz
PHPzOriginal
2024-08-10 06:52:101069browse

Installing Golang on MacOS

This guide is what I did to get Golang setup on my Mac machine.

Assumptions

You use the following:

  • asdf
  • zshrc

Install Golang

From asdf-golang

asdf plugin add golang https://github.com/asdf-community/asdf-golang.git
# install latest golang version
asdf install golang latest

# set the glboal version for golang to latest
asdf global golang latest

# reshim 
asdf reshim golang

Add GOROOT in your shell's initialisation

GOROOT is the environment variable that specifics the location of the Go installation

Add the following to ~/.zshrc

. ~/.asdf/plugins/golang/set-env.zsh

This will ensure that GOROOT and GOPATH is set each time you run your terminal

  • GOROOT: specifies location of the Go installation directory (e.g. compiler, linker, standard library)
  • GOPATH: specifies location of your workspace. Workspace is a directory hierachy with three directories: src, pkg, bin

You can see what set-env.zsh does:

$ cat ~/.asdf/plugins/golang/set-env.zsh
asdf_update_golang_env() {
  local go_bin_path
  go_bin_path="$(asdf which go 2>/dev/null)"
  if [[ -n "${go_bin_path}" ]]; then
    export GOROOT
    GOROOT="$(dirname "$(dirname "${go_bin_path:A}")")"

    export GOPATH
    GOPATH="$(dirname "${GOROOT:A}")/packages"
  fi
}

autoload -U add-zsh-hook
add-zsh-hook precmd asdf_update_golang_env

Update your currently opened terminal to use latest ~/.zshrc

source ~/.zshrc

Check to see if GOROOT and GOPATH is set

> echo $GOROOT
/Users/username/.asdf/installs/golang/1.22.5/go

> echo $GOPATH
/Users/username/.asdf/installs/golang/1.22.5/packages

The above is the detailed content of Installing Golang on MacOS. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn