Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Install Go with the official package for your operating system, make sure the Go toolchain directory is on PATH, keep your workspace in a separate GOPATH, then open a new terminal and run go version. Windows uses an MSI installer, macOS uses the official package, and Linux uses the official archive. After installation, create a module with go mod init and run it with go run ..

The commands and module workflow are the same on all three platforms, but each operating system changes the environment differently. The procedures below show those differences, the safest upgrade approach, and the fixes for the errors people most often encounter.

Choose the installation method for your operating system

Download Go from the official Go project for your operating system and CPU architecture. Release numbers, archive names, and package filenames change, so check the current release before downloading. The installation method determines how much of the environment is configured automatically.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Operating system Official method How the Go path is changed After installation Upgrade cleanup
Windows MSI installer The installer updates the Windows environment Close and reopen Command Prompt or PowerShell Normally handled by the installer; verify the active version afterward
macOS Installer package The package places /usr/local/go/bin in /etc/paths.d/go Start a new terminal The package manages the standard installation location
Linux Compressed archive You add /usr/local/go/bin to a shell profile or /etc/profile Start a new terminal or reload the profile Remove the old /usr/local/go tree before extracting the replacement

Do not install Go inside your workspace. The toolchain belongs in its installation directory, while source code, downloaded modules, and installed command binaries belong in your user workspace.

#1 Best Overall
Sale
LAPGEAR Home Office Pro Lap Desk - Black Carbon, Fits 15.6” Laptops | Built-In Mouse Pad & Phone Slot, Wide Cushioned Wrist Rest, Dual-Bolster Microbead Cushion, Carry Handle
  • Spacious Design: Measuring 21.1" wide and 14.1" deep, our lap desk comfortably fits most laptops up to 15.6". Extra room for accessories ensures convenience.
  • Enhanced Functionality: Packed with handy features, including a 5x9" precision tracking mouse pad and a built-in phone slot for seamless work or video calls. Plus, enjoy ergonomic support with the integrated cushioned wrist rest.
  • Cool Comfort: Enjoy a stable surface with our lap desk's dual bolster cushion, designed for comfort and airflow, keeping your lap cool during extended use.
  • Durable Surface: Work with confidence on our lap desk's solid surface, featuring a sleek black carbon color, ensuring optimal air circulation to prevent your laptop from overheating.
  • On-the-Go Convenience: With an integrated handle and lightweight design (2.8 lbs), our lap desk is portable for travel or moving around the house, offering flexibility in any space.

What to prepare before installing

  • Choose the package that matches your operating system and architecture.
  • On Windows, have permission to run an installer and to write to the selected destination, usually under Program Files.
  • On Linux, use an account with sudo access when replacing /usr/local/go and editing system-wide profiles.
  • Close terminals that were open before the installation. Environment variables are read when a shell starts, so an existing shell can continue using an old PATH.
  • Decide whether you need a custom workspace. Most users should keep the default GOPATH and change it only for a deliberate workspace layout.

Install Go on Windows

1. Run the MSI installer

  1. Download the current Windows MSI from the official Go download page.
  2. Open the downloaded MSI and follow the setup prompts.
  3. Keep the default destination unless your organization requires another location. The installer normally uses Program Files or Program Files (x86), and the destination can be changed during setup.
  4. Complete the installation and close the installer.

The MSI configures the standard Go installation and its environment. Do not point GOPATH at the installation directory; it is a separate user workspace.

2. Refresh the terminal environment

Close every Command Prompt and PowerShell window that was open during setup. Open a new PowerShell or Command Prompt so Windows loads the installer’s environment changes.

3. Verify the toolchain

Run this command in the new shell:

go version

A successful result prints the installed Go version and the Windows architecture. If Windows reports that go is not recognized, inspect the current PATH, confirm that the Go installation exists in the selected destination, and open another new shell. A shell that predates the installation will not see the updated environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Check the workspace settings

Display Go’s effective paths with:

go env GOROOT GOPATH GOBIN

GOROOT should identify the Go installation. The default Windows workspace is %USERPROFILE%go. GOBIN may be empty, which means installed commands use the bin directory beneath GOPATH.

Install Go on macOS

1. Install the official package

  1. Download the current macOS package from the official Go download page.
  2. Open the downloaded package and follow the prompts.
  3. Allow the package to install Go under /usr/local/go.

The package adds /usr/local/go/bin to PATH through /etc/paths.d/go. That change is available to newly started shells, not terminals that were already running.

2. Start a new terminal and verify

Quit the existing terminal window, open a new one, and run:

go version

If the command is not found, inspect the path supplied by the package and start another new terminal. You can also inspect the effective values with:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
go env GOROOT GOPATH GOBIN

3. Expose commands installed with go install

Go-installed command binaries normally go in $(go env GOPATH)/bin. The Go toolchain itself can be available while those commands remain unavailable by name, because the workspace’s bin directory is a separate path.

For the Z shell, add this line to ~/.zshrc:

export PATH="$PATH:$(go env GOPATH)/bin"

For Bash, add the same line to ~/.bash_profile:

export PATH="$PATH:$(go env GOPATH)/bin"

Open a new terminal after saving the file. If you need the change immediately, reload the profile in the current shell with the appropriate source command.

Install Go on Linux

1. Remove the previous toolchain tree

The official installation documentation warns: “Do not untar the archive into an existing /usr/local/go tree. This is known to produce broken Go installations.” If an older manual installation is present, remove that tree before extracting the new archive:

sudo rm -rf /usr/local/go

Use this command only when /usr/local/go is the Go installation you intend to replace. It does not remove your source code or the default workspace at $HOME/go.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Extract the downloaded archive

Download the current Linux archive for your architecture, then extract it into /usr/local. Replace <archive-name> with the filename you downloaded:

sudo tar -C /usr/local -xzf <archive-name>

The result should be a fresh /usr/local/go directory containing the toolchain.

3. Add Go to PATH

For a single user, add this line to ~/.profile:

export PATH="$PATH:/usr/local/go/bin"

For all users, an administrator can place the same line in /etc/profile. Save the file, then start a new terminal. To apply a profile change without opening another terminal, reload the profile in the current shell using its normal source command.

Rank #3
Sale
Yilador Webcam Cover 3 Pack, 0.03 inch Ultra Thin Laptop Camera Cover Slide | Camera Blocker Slider for iPhone iPad MacBook Pro Computer iMac Cell Phone PC Laptop Accessories, Great for Privacy, Black
  • Note: Not suitable for MacBooks released after 2023 or devices with a protruding front camera; Not applicable to full-screen or notch-style tempered glass screen protectors; Do not use on the rear camera of the phone.
  • 💻 Why Do You Need a Webcam Cover Slide? — Safeguard your privacy by covering your webcam with our reliable webcam cover when not in use. Don't let anyone secretly watch you. Stay protected!
  • ✅ Thin & Stylish — Enhance your laptop's functionality and aesthetics with our 0.027" ultra-thin webcam covers. Seamlessly close your laptop while adding a touch of sophistication.
  • ✅ Fits Most Devices — Compatible with laptops, phones, tablets, desktops! Keep your privacy intact on Ap/ple, Mac/Book, iPh/one, iP/ad, H/P, L/novo, De/ll, Ac/er, As/us, Sa/msung devices.
  • ✅ 365 Days Protection — Our upgraded 3.0 adhesive ensures a strong hold that won't damage your equipment. Experience reliable, long-term privacy protection day in and day out.

4. Add the workspace’s command directory when needed

To run binaries installed by go install simply by name, add the workspace bin directory as well:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
export PATH="$PATH:$(go env GOPATH)/bin"

Keep the Go toolchain path and the workspace bin path as separate entries. The first exposes go; the second exposes tools installed into your workspace.

5. Verify the installation

Open a new terminal and run:

go version

Then inspect the locations Go is using:

go env GOROOT GOPATH GOBIN

Understand PATH, GOROOT, GOPATH, and GOBIN

Setting Purpose Typical value Should it equal the Go installation?
PATH Shell search list used to find executables such as go and installed tools Includes /usr/local/go/bin on Unix-like systems; Windows receives the equivalent through the MSI It is a list, not a directory
GOROOT Location of the Go toolchain and standard library The installation directory, commonly /usr/local/go on macOS and Linux No relationship to the workspace is required
GOPATH User workspace and cache area used by Go tooling $HOME/go on Unix systems; %USERPROFILE%go on Windows No. It must not be the same path as GOROOT
GOBIN Optional destination for binaries produced by go install Empty by default, which uses the bin directory under GOPATH No

Modern Go projects are module-based, so you normally do not need to set GOPATH manually. The default remains useful for the module cache and for commands installed with go install.

Keep GOPATH separate and customize it only deliberately

Use the default workspace

The official defaults are $HOME/go on Unix-like systems and %USERPROFILE%go on Windows. Check the active value instead of guessing:

go env GOPATH

Leaving the default in place avoids unnecessary profile edits and works with module-based projects.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Set a custom workspace on Unix-like systems

Use Go’s persistent environment setting when a custom location is required:

go env -w GOPATH=$HOME/go

Replace the value with the workspace directory you actually want. The directory must not be the Go installation directory.

Rank #4
AboveTEK Portable Laptop Lap Desk w/Retractable Left/Right Mouse Pad Tray, Non-Slip Heat Shield Tablet Notebook Computer Stand Table w/Sturdy Stable Work Surface for Bed Sofa Couch or Travel
  • Anti-Slip Surface - Transform your laptop into a mobile workstation with the AboveTEK portable laptop lap desk. The anti-slip surface provides a strong grip for laptops up to 15.6 inches(Diagonal), while the double rubber strip on the bottom ensures a stable display or typing experience on your lap, couch, or bed.
  • Retractable Mouse Pad - Retractable laptop mouse pad extends on both directions for the left/right handed with elevation along the edges for stopping mouse from falling off. The size of laptop tray is 14" X 9.7" and the size of mouse pad is 7.4" X 6.1".
  • Effective Heat Shield - The effective heat shield made of sturdy and thick material protects your laptop from overheating. Prioritizes your comfort and safety, an ideal lap pad or board for working anywhere.
  • EASY to Carry and Store - With an ergonomic and simplistic design, the lap desk is portable to store in a backpack. Only 15" in size, 2.2 lb of weight and with slim 0.6 inch thickness, it is ready to be easily carried around.
  • Widely Applicable - The smooth platform accommodates laptops and tablets up to 15.6 inches(Diagonal), making it a versatile accessory and one of the best gifts for mom, dad, students and professionals. Perfect for use as a laptop bed tray or tablet holder anywhere at home, library, or park.

Set a custom workspace on Windows

In PowerShell or Command Prompt, set the value with:

go env -w GOPATH=c:go-work

Use a directory intended for user files and caches, not the location containing the Go toolchain.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Confirm the result

After changing GOPATH, run go env GOPATH again. If another shell still reports the old value, open a new terminal. Profile and environment changes are not retroactive to already-running processes.

Create and run a first Go module

The same module workflow works in PowerShell, Command Prompt, macOS Terminal, and Linux shells. The official tutorial also identifies VS Code, GoLand, and Vim as editors with Go support; an editor is optional because the commands below run entirely in a terminal.

  1. Create a directory and enter it:
    mkdir hello
    cd hello
  2. Initialize a module. The module path can be the path you will use when publishing the code; this local example uses example/hello:
    go mod init example/hello
  3. Create a file named hello.go with this program:
    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, World!")
    }
  4. Run the module from its directory:
    go run .

go mod init creates go.mod, which records the module path and Go module metadata. go run . builds and executes the main package in the current directory. When you add imports from external modules, run go mod tidy to record the required modules and their checksums.

Compare the platform-specific work

Task Windows macOS Linux
Install Open the MSI and follow the prompts Open the package and follow the prompts Remove the old tree, then extract the archive into /usr/local
Toolchain path Configured by the installer /usr/local/go/bin through /etc/paths.d/go Add /usr/local/go/bin manually
Workspace tool path Add the equivalent GOPATH bin directory when needed Add $(go env GOPATH)/bin to ~/.zshrc or ~/.bash_profile Add $(go env GOPATH)/bin to ~/.profile or /etc/profile
Refresh Open a new Command Prompt or PowerShell Open a new terminal Open a new terminal or reload the profile
Upgrade concern Verify the version after the installer completes Install the replacement package and verify Never extract over an existing /usr/local/go tree

Once go is on PATH, module commands, source layout, and verification are the same on every platform.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot installation and configuration problems

“go” is not found or not recognized

  • Start a completely new terminal; installers and profile edits affect new processes.
  • On Linux, check that /usr/local/go/bin appears in ~/.profile or /etc/profile.
  • On macOS, confirm that the package created the standard /etc/paths.d/go entry and open a new terminal.
  • On Windows, confirm that the MSI completed and that the selected installation directory exists.
  • Run the platform’s path inspection command, then correct the profile or environment entry if the Go directory is absent.

The wrong Go version appears

More than one installation can exist. Use the shell’s executable lookup to see which go is being selected, then remove the obsolete path entry or place the intended installation earlier in PATH. Verify again with go version.

Best Value
Sale
LAPGEAR Home Office Lap Desk – Pink, Fits 15.6” Laptops | Built-In Mouse Pad & Phone Slot, Integrated Device Ledge, Dual-Bolster Microbead Cushion, Carry Handle
  • Spacious Design: Measuring 21.1" wide and 12" deep, our lap desk comfortably fits most laptops up to 15.6". Extra room for accessories ensures convenience.
  • Enhanced Functionality: Packed with handy features, including a 5x9" precision tracking mouse pad and a built-in phone slot for seamless work or video calls. Plus, enjoy laptop support with the integrated device ledge.
  • Cool Comfort: Enjoy a stable surface with our lap desk's dual bolster cushion, designed for comfort and airflow, keeping your lap cool during extended use.
  • Durable Surface: Work with confidence on our lap desk's solid surface, featuring a blush pink color, ensuring optimal air circulation to prevent your laptop from overheating.
  • On-the-Go Convenience: With an integrated handle and lightweight design (2.14 lbs), our lap desk is portable for travel or moving around the house, offering flexibility in any space.

A GOPATH and GOROOT conflict is reported

Move GOPATH to a separate workspace. The two directories must not be identical. Check both values with:

go env GOROOT GOPATH

Set a new workspace with go env -w GOPATH=..., using the syntax for your operating system, and then repeat the check.

An installed command cannot be run by name

The command may have been installed successfully but placed in $(go env GOPATH)/bin, which is not on PATH. Add that directory to the appropriate shell profile, open a new terminal, and try the command again. If you intentionally set GOBIN, inspect it with go env GOBIN and add that directory instead.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A Linux upgrade behaves unpredictably

Do not unpack a new archive over an existing /usr/local/go tree. Remove the old tree first, extract the new archive, confirm that the profile still contains /usr/local/go/bin, start a new shell, and run go version.

A profile edit appears to do nothing

Check that you edited the profile used by the shell you are actually running. Z shell commonly reads ~/.zshrc, Bash may read ~/.bash_profile, and the Linux system-wide option is /etc/profile. Open a new terminal or source the edited profile, then print PATH and rerun go version.

Verify a healthy setup with a repeatable checklist

  • go version prints the expected installed release.
  • go env GOROOT points to the toolchain installation.
  • go env GOPATH points to a separate user workspace.
  • go env GOBIN is either intentionally configured or empty by design.
  • The workspace bin directory is on PATH if you install command-line tools.
  • go mod init example/hello creates a go.mod file in a new project.
  • go run . executes a simple main package successfully.

Continue learning after setup

For a structured next step, The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan is published by Addison-Wesley Professional. The publisher describes an opening tutorial, practical examples, and coverage that extends from basic language components through concurrency and testing. The listed publication date is October 26, 2015, and the ISBN-13 is 978-0-13-419044-0. Check the edition and regional availability before purchasing, since commercial listings can change.

The official Go tutorial is the better reference for current command behavior and module practice. Use the book for depth and the tutorial for version-sensitive details.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the installation current

Release numbers and download filenames change over time. Before an upgrade, check the current official release, install it using the method for your operating system, and verify with go version. The installation guidance summarized here was checked on October 16, 2026; package names, release numbers, and distribution details should be confirmed again when you perform the installation.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.