Skip to content

Go Download ​

Before You Start

  • Applies to: Go 1.21+ (examples verified with Go 1.22) · Prerequisites: Get Started · Read time: about 5 min

Install the latest version of Go. For instructions on downloading and installing the Go compiler, tools, and libraries, please visit the Go language download page.

Starting from Go 1.13, the go command uses the Go module mirror and the Go checksum database run by Google to download and verify modules by default. For privacy information about these services, please see https://proxy.golang.org/privacy. For configuration details (including how to disable these servers or use different servers), please refer to the go command documentation.

Go 1.26.0 ​

FilenameTypeSystemArchitectureSize
go1.26.0.src.tar.gzSource33MB
go1.26.0.darwin-amd64.tar.gzArchivemacOSx86-6465MB
go1.26.0.darwin-amd64.pkgInstallermacOSx86-6466MB
go1.26.0.darwin-arm64.tar.gzArchivemacOSARM6462MB
go1.26.0.darwin-arm64.pkgInstallermacOSARM6463MB
go1.26.0.linux-386.tar.gzArchiveLinuxx8662MB
go1.26.0.linux-amd64.tar.gzArchiveLinuxx86-6464MB
go1.26.0.linux-arm64.tar.gzArchiveLinuxARM6461MB
go1.26.0.linux-armv6l.tar.gzArchiveLinuxARMv662MB
go1.26.0.windows-386.zipArchiveWindowsx8670MB
go1.26.0.windows-386.msiInstallerWindowsx8658MB
go1.26.0.windows-amd64.zipArchiveWindowsx86-6471MB
go1.26.0.windows-amd64.msiInstallerWindowsx86-6459MB
Other Ports
go1.26.0.aix-ppc64.tar.gzArchiveaixppc6462MB
go1.26.0.dragonfly-amd64.tar.gzArchivedragonflyx86-6463MB
go1.26.0.freebsd-386.tar.gzArchiveFreeBSDx8662MB
go1.26.0.freebsd-amd64.tar.gzArchiveFreeBSDx86-6463MB
go1.26.0.freebsd-arm.tar.gzArchiveFreeBSDarm62MB
go1.26.0.freebsd-arm64.tar.gzArchiveFreeBSDARM6460MB
go1.26.0.illumos-amd64.tar.gzArchiveillumosx86-6463MB
go1.26.0.linux-loong64.tar.gzArchiveLinuxloong6462MB
go1.26.0.linux-mips.tar.gzArchiveLinuxmips60MB
go1.26.0.linux-mips64.tar.gzArchiveLinuxmips6460MB
go1.26.0.linux-mips64le.tar.gzArchiveLinuxmips64le59MB
go1.26.0.linux-mipsle.tar.gzArchiveLinuxmipsle60MB
go1.26.0.linux-ppc64.tar.gzArchiveLinuxppc6461MB
go1.26.0.linux-ppc64le.tar.gzArchiveLinuxppc64le61MB
go1.26.0.linux-riscv64.tar.gzArchiveLinuxriscv6462MB
go1.26.0.linux-s390x.tar.gzArchiveLinuxs390x63MB
go1.26.0.netbsd-386.tar.gzArchivenetbsdx8662MB
go1.26.0.netbsd-amd64.tar.gzArchivenetbsdx86-6463MB
go1.26.0.netbsd-arm.tar.gzArchivenetbsdarm62MB
go1.26.0.netbsd-arm64.tar.gzArchivenetbsdARM6460MB
go1.26.0.openbsd-386.tar.gzArchiveopenbsdx8661MB
go1.26.0.openbsd-amd64.tar.gzArchiveopenbsdx86-6463MB
go1.26.0.openbsd-arm.tar.gzArchiveopenbsdarm61MB
go1.26.0.openbsd-arm64.tar.gzArchiveopenbsdARM6460MB
go1.26.0.openbsd-ppc64.tar.gzArchiveopenbsdppc6461MB
go1.26.0.openbsd-riscv64.tar.gzArchiveopenbsdriscv6461MB
go1.26.0.plan9-386.tar.gzArchiveplan9x8661MB
go1.26.0.plan9-amd64.tar.gzArchiveplan9x86-6462MB
go1.26.0.plan9-arm.tar.gzArchiveplan9arm61MB
go1.26.0.solaris-amd64.tar.gzArchivesolarisx86-6463MB
go1.26.0.windows-arm64.zipArchiveWindowsARM6468MB
go1.26.0.windows-arm64.msiInstallerWindowsARM6457MB

Go 1.25.7 ​

FilenameTypeSystemArchitectureSize
go1.25.7.src.tar.gzSource33MB
go1.25.7.darwin-amd64.tar.gzArchivemacOSx86-6465MB
go1.25.7.darwin-amd64.pkgInstallermacOSx86-6466MB
go1.25.7.darwin-arm64.tar.gzArchivemacOSARM6462MB
go1.25.7.darwin-arm64.pkgInstallermacOSARM6463MB
go1.25.7.linux-386.tar.gzArchiveLinuxx8662MB
go1.25.7.linux-amd64.tar.gzArchiveLinuxx86-6464MB
go1.25.7.linux-arm64.tar.gzArchiveLinuxARM6461MB
go1.25.7.linux-armv6l.tar.gzArchiveLinuxARMv662MB
go1.25.7.windows-386.zipArchiveWindowsx8670MB
go1.25.7.windows-386.msiInstallerWindowsx8658MB
go1.25.7.windows-amd64.zipArchiveWindowsx86-6471MB
go1.25.7.windows-amd64.msiInstallerWindowsx86-6459MB
Other Ports
go1.25.7.aix-ppc64.tar.gzArchiveaixppc6462MB
go1.25.7.dragonfly-amd64.tar.gzArchivedragonflyx86-6463MB
go1.25.7.freebsd-386.tar.gzArchiveFreeBSDx8662MB
go1.25.7.freebsd-amd64.tar.gzArchiveFreeBSDx86-6463MB
go1.25.7.freebsd-arm.tar.gzArchiveFreeBSDarm62MB
go1.25.7.freebsd-arm64.tar.gzArchiveFreeBSDARM6460MB
go1.25.7.illumos-amd64.tar.gzArchiveillumosx86-6463MB
go1.25.7.linux-loong64.tar.gzArchiveLinuxloong6462MB
go1.25.7.linux-mips.tar.gzArchiveLinuxmips60MB
go1.25.7.linux-mips64.tar.gzArchiveLinuxmips6460MB
go1.25.7.linux-mips64le.tar.gzArchiveLinuxmips64le59MB
go1.25.7.linux-mipsle.tar.gzArchiveLinuxmipsle60MB
go1.25.7.linux-ppc64.tar.gzArchiveLinuxppc6461MB
go1.25.7.linux-ppc64le.tar.gzArchiveLinuxppc64le61MB
go1.25.7.linux-riscv64.tar.gzArchiveLinuxriscv6462MB
go1.25.7.linux-s390x.tar.gzArchiveLinuxs390x63MB
go1.25.7.netbsd-386.tar.gzArchivenetbsdx8662MB
go1.25.7.netbsd-amd64.tar.gzArchivenetbsdx86-6463MB
go1.25.7.netbsd-arm.tar.gzArchivenetbsdarm62MB
go1.25.7.netbsd-arm64.tar.gzArchivenetbsdARM6460MB
go1.25.7.openbsd-386.tar.gzArchiveopenbsdx8661MB
go1.25.7.openbsd-amd64.tar.gzArchiveopenbsdx86-6463MB
go1.25.7.openbsd-arm.tar.gzArchiveopenbsdarm61MB
go1.25.7.openbsd-arm64.tar.gzArchiveopenbsdARM6460MB
go1.25.7.openbsd-ppc64.tar.gzArchiveopenbsdppc6461MB
go1.25.7.openbsd-riscv64.tar.gzArchiveopenbsdriscv6461MB
go1.25.7.plan9-386.tar.gzArchiveplan9x8661MB
go1.25.7.plan9-amd64.tar.gzArchiveplan9x86-6462MB
go1.25.7.plan9-arm.tar.gzArchiveplan9arm61MB
go1.25.7.solaris-amd64.tar.gzArchivesolarisx86-6463MB
go1.25.7.windows-arm64.zipArchiveWindowsARM6468MB
go1.25.7.windows-arm64.msiInstallerWindowsARM6457MB

Go 1.25.6 ​

FilenameTypeSystemArchitectureSize
go1.25.6.src.tar.gzSource33MB
go1.25.6.darwin-amd64.tar.gzArchivemacOSx86-6465MB
go1.25.6.darwin-amd64.pkgInstallermacOSx86-6466MB
go1.25.6.darwin-arm64.tar.gzArchivemacOSARM6462MB
go1.25.6.darwin-arm64.pkgInstallermacOSARM6463MB
go1.25.6.linux-386.tar.gzArchiveLinuxx8662MB
go1.25.6.linux-amd64.tar.gzArchiveLinuxx86-6464MB
go1.25.6.linux-arm64.tar.gzArchiveLinuxARM6461MB
go1.25.6.linux-armv6l.tar.gzArchiveLinuxARMv662MB
go1.25.6.windows-386.zipArchiveWindowsx8670MB
go1.25.6.windows-386.msiInstallerWindowsx8658MB
go1.25.6.windows-amd64.zipArchiveWindowsx86-6471MB
go1.25.6.windows-amd64.msiInstallerWindowsx86-6459MB
Other Ports
go1.25.6.aix-ppc64.tar.gzArchiveaixppc6462MB
go1.25.6.dragonfly-amd64.tar.gzArchivedragonflyx86-6463MB
go1.25.6.freebsd-386.tar.gzArchiveFreeBSDx8662MB
go1.25.6.freebsd-amd64.tar.gzArchiveFreeBSDx86-6463MB
go1.25.6.freebsd-arm.tar.gzArchiveFreeBSDarm62MB
go1.25.6.freebsd-arm64.tar.gzArchiveFreeBSDARM6460MB
go1.25.6.illumos-amd64.tar.gzArchiveillumosx86-6463MB
go1.25.6.linux-loong64.tar.gzArchiveLinuxloong6462MB
go1.25.6.linux-mips.tar.gzArchiveLinuxmips60MB
go1.25.6.linux-mips64.tar.gzArchiveLinuxmips6460MB
go1.25.6.linux-mips64le.tar.gzArchiveLinuxmips64le59MB
go1.25.6.linux-mipsle.tar.gzArchiveLinuxmipsle60MB
go1.25.6.linux-ppc64.tar.gzArchiveLinuxppc6461MB
go1.25.6.linux-ppc64le.tar.gzArchiveLinuxppc64le61MB
go1.25.6.linux-riscv64.tar.gzArchiveLinuxriscv6462MB
go1.25.6.linux-s390x.tar.gzArchiveLinuxs390x63MB
go1.25.6.netbsd-386.tar.gzArchivenetbsdx8662MB
go1.25.6.netbsd-amd64.tar.gzArchivenetbsdx86-6463MB
go1.25.6.netbsd-arm.tar.gzArchivenetbsdarm62MB
go1.25.6.netbsd-arm64.tar.gzArchivenetbsdARM6460MB
go1.25.6.openbsd-386.tar.gzArchiveopenbsdx8661MB
go1.25.6.openbsd-amd64.tar.gzArchiveopenbsdx86-6463MB
go1.25.6.openbsd-arm.tar.gzArchiveopenbsdarm61MB
go1.25.6.openbsd-arm64.tar.gzArchiveopenbsdARM6460MB
go1.25.6.openbsd-ppc64.tar.gzArchiveopenbsdppc6461MB
go1.25.6.openbsd-riscv64.tar.gzArchiveopenbsdriscv6461MB
go1.25.6.plan9-386.tar.gzArchiveplan9x8661MB
go1.25.6.plan9-amd64.tar.gzArchiveplan9x86-6462MB
go1.25.6.plan9-arm.tar.gzArchiveplan9arm61MB
go1.25.6.solaris-amd64.tar.gzArchivesolarisx86-6463MB
go1.25.6.windows-arm64.zipArchiveWindowsARM6468MB
go1.25.6.windows-arm64.msiInstallerWindowsARM6457MB

Complete Example ​

The program below runs as-is: copy it into a file and execute go run main.go, or paste it into the Go Playground.

go
package main

import (
	"fmt"
	"runtime"
	"strings"
)

func main() {
	supportedOS := map[string]bool{"linux": true, "darwin": true, "windows": true}

	v := runtime.Version()
	fmt.Println("Go 1.x release:", strings.HasPrefix(v, "go1."))
	fmt.Println("current OS in supported list:", supportedOS[runtime.GOOS])
}

Expected output:

text
Go 1.x release: true
current OS in supported list: true

Common Pitfalls ​

  • Download the archive for your OS and architecture. darwin is macOS; amd64 is x86-64 and arm64 is Apple Silicon / ARM servers.
  • Verify the checksum after downloading. Compare the downloaded file against the published SHA256; a truncated archive fails in confusing ways later.
  • Do not mix installation methods. If you installed Go via a package manager, upgrade through it instead of unpacking a tarball over it.
  • Remove old versions from PATH. Multiple go binaries compete; check with go version and which -a go.
  • Keep the default GOROOT. Only set GOROOT when you installed Go in a non-standard location — most users never need it.

Change Log ​

  • 2026-10-14: Added "Before You Start" notes, a complete runnable example with expected output, common pitfalls, and this change log. Fixed a malformed download URL.

Golang by www.golangdev.cn · Adapted in part from Golang 中文学习文档 (MIT, © 寒江蓑笠翁)