Installing Golang on MacOS

PHPz
Release: 2024-08-10 06:52:10
Original
1236 people have browsed it

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
Copy after login

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
Copy after login

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
Copy after login
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
Copy after login

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

source ~/.zshrc
Copy after login

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
Copy after login

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

source:dev.to
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template