Awesome
<h1 align="left">Go Installer 🐹 <a target="_blank" href="https://kounter.kerolloz.dev"> <img align="right" src="https://kounter.kerolloz.dev/badge/kerolloz.go-installer?style=for-the-badge&color=69d7e4&label=Views&labelColor=69d7e4" /> </a> </h1> <img align="right" src="https://user-images.githubusercontent.com/36763164/169433445-04f8485b-aa8d-45d0-a3cf-6e69c6456b2f.png" width="33%">Install Golang on Linux or Mac <strike>with hassle of environment variables setting</strike>.
How to use it 🤔
Installing (or even updating) Go ⬇️
You can clone the repository and then run bash go.sh
.
Or by simply running whatever suits you from the following commands (wget
1 or curl
):
# downloads then runs the script
wget https://git.io/go-installer.sh && bash go-installer.sh
# doesn't download the script ~ runs the script directly
bash <(curl -sL https://git.io/go-installer)
Now, you can go grab a cup of coffee :coffee:, sit back :relieved: and relax while the magic happens! :crystal_ball:
Note
By default the script will create.go
andgo
folders on your HOME directory & add the needed variables to your PATH variable.
$HOME/.go
is where Go will be installed.
$HOME/go
is the default workspace.
In order to install Go to another location or set custom workspace. You can set environment variables GOROOT or GOPATH before installing (or uninstalling) Go.
For example:
export GOROOT=/opt/go # where Go is installed
export GOPATH=$HOME/projects/go # your workspace
Read more about workspaces in Go.
Specifying a version to install 🧐
By default, the script installs the latest version available.
You can choose what version to install by adding the --version
flag, followed by the version you want to install.
bash go.sh --version 1.19.4
Show Help Message 🍁
To show the following help message use bash go.sh help
.
Uninstalling Go ❌
bash go.sh remove
How it works ⚙️
The script does the following steps:
- Checks if Go is already installed.
- Detects the installed operating system (Linux or Mac).
- Detects system architecture (armv6, armv8, amd64, i386).
- Parses the https://go.dev/dl download page to find the latest version of Go that is available for your platform and architecture.
- Exits if you have the latest version of Go already installed.
- Downloads the latest version of Go.
- Creates the needed directories for workspace and Go binaries.
- Extracts the files of the downloaded package.
- Adds the binaries to PATH environment variable.
- Removes the downloaded installation file.