Install Golang on Linux, Mac or Windows
with hassle of environment variables setting.
You can clone the repository and then choose how you want to run the script:
git clone
cd go-installer
-
By running the script directly:
- Linux:
bash go.sh
- MacOS:
./go.sh
- Windows:
.\go.ps1
- Linux:
Or by simply running whatever suits you from the following commands (wget
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 โ, sit back ๐ and relax while the magic happens! ๐ฎ
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.
To install Go to another location or set a custom workspace, set the 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.
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
You can check if a specific version of Go is installed by using the --version check
flag, followed by the version you want to check.
bash go.sh --version check 1.19.4
To show the following help message use bash go.sh help
.
bash go.sh remove
You can run tests locally using Docker to ensure a consistent environment and prevent side-effects on your host system. On CI environments, tests will run normally.
To run tests locally, simply use the make test
command, and all the magic will happen:
make test
This command will build the Docker image and run the tests inside the Docker container.
.\go.ps1 -Command install
.\go.ps1 -Command install -Version 1.19.2
.\go.ps1 -Command remove
.\go.ps1 -Command update
.\go.ps1 -Command help
.\go.ps1 -Command test
A Makefile
is provided to simplify common tasks. Here are some useful commands:
-
Linux/MacOS
- Install Go:
make install
- Uninstall Go:
make uninstall
- Check if a specific version is installed:
make check-version VERSION=1.19.4
- Run tests:
make test
- Install Go:
-
Windows
- Install Go:
make install-windows
- Uninstall Go:
make uninstall-windows
- Check if a specific version is installed:
make check-version-windows VERSION=1.19.4
- Run tests:
make test-windows
- Install Go:
- Fork the repository.
- Clone the forked repository.
- Create a new branch.
- Make your changes.
- Commit your changes.
- Push the changes to your fork.
- Create a pull request.
- Star the repository.
- Wait for the pull request to be reviewed and merged.
- Celebrate ๐
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.
Demo.mp4
๐ฅ WORKS LIKE A CHARM ๐