Installing Go (Golang) on WSL Ubuntu
This guide walks you through installing Go programming language on Windows Subsystem for Linux (WSL) with Ubuntu.
Prerequisites
- WSL with Ubuntu installed and properly configured
- Internet connection
- Basic terminal knowledge
Installation Steps
There are two main methods to install Go on WSL Ubuntu:
Method 1: Using the Official Go Binary (Recommended)
This method ensures you get the latest version of Go directly from the official website:
# 1. Update your Ubuntu packages
sudo apt update
sudo apt upgrade -y
# 2. Install required packages
sudo apt install -y wget git
# 3. Check the latest Go version
# Visit https://go.dev/dl/ for the latest version
# As of May 2025, Go 1.24.2 is the latest stable version
# 4. Download the Go binary package
# Replace 1.24.2 with the latest version as needed
# For standard Intel/AMD processors (most common):
wget https://dl.google.com/go/go1.24.2.linux-amd64.tar.gz
# For ARM64 architecture (e.g., if using WSL on ARM-based systems):
# wget https://dl.google.com/go/go1.24.2.linux-arm64.tar.gz
# 5. Extract the archive to /usr/local
# This requires root permissions
# For AMD64 architecture:
sudo tar -C /usr/local -xzf go1.24.2.linux-amd64.tar.gz
# For ARM64 architecture:
# sudo tar -C /usr/local -xzf go1.24.2.linux-arm64.tar.gz
# 6. Remove the downloaded archive to save space (optional)
rm go1.24.2.linux-amd64.tar.gz
# 7. Create Go workspace directories
mkdir -p ~/go/{bin,src,pkg}
Method 2: Using Ubuntu's Package Manager (Simpler but may not be latest)
# Install Go using apt
sudo apt update
sudo apt install -y golang-go
# Create Go workspace directories
mkdir -p ~/go/{bin,src,pkg}
Configuring Go Environment
After installing Go, you need to set up environment variables. Add the following to your shell configuration file:
For Bash (default in Ubuntu)
# Open .bashrc file
nano ~/.bashrc
# Add these lines at the end of the file
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# Save and exit (Ctrl+O, Enter, Ctrl+X)
# Apply changes immediately
source ~/.bashrc
For Zsh (if you use it)
# Open .zshrc file
nano ~/.zshrc
# Add these lines at the end of the file
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# Save and exit (Ctrl+O, Enter, Ctrl+X)
# Apply changes immediately
source ~/.zshrc
Verifying the Installation
# Check Go version
go version
# Check Go environment
go env
You should see output similar to:
go version go1.24.2 linux/amd64
Creating a Simple Hello World Program
Let's create a simple Go program to verify the installation works correctly:
# Navigate to your Go workspace
cd ~/go/src
# Create a new directory for your project
mkdir hello
cd hello
# Create a new Go file
nano hello.go
Add the following code to hello.go:
package main
import "fmt"
func main() {
fmt.Println("Hello, World from Go on WSL!")
}
Save and exit the editor, then compile and run the program:
# Run the program directly
go run hello.go
# Or build and then run the executable
go build
./hello
Setting Up VS Code Integration (Optional)
If you use Visual Studio Code, you can enhance your Go development experience:
- Install VS Code on Windows
- Install the "Remote - WSL" extension
- Install the "Go" extension when working in WSL
- Open your WSL terminal and navigate to your project
- Run
code .to open VS Code with WSL integration
Troubleshooting Common Issues
Command 'go' not found
If you encounter this error even after installation
Top comments (2)
the cutoff is funny. what you wanna do it restart bash if you installed go correctly. or restart the wsl session.
just new to wsl, thanks for this guide straightforward and works fine!