Menu

Golang installieren unter Windows, macOS und Linux, Schritt für Schritt

So lädst du Go unter Windows, macOS und Linux herunter und installierst es, prüfst die Installation mit go version, verstehst GOPATH und behebst den Fehler „go: command not found“.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Lade Go von go.dev/dl herunter, führ das Installationsprogramm für dein System aus, öffne ein neues Terminal und führ go version aus. Unter Windows und macOS ist das die ganze Installation. Unter Linux entpackst du ein Tarball und fügst deinem PATH ein Verzeichnis hinzu. Die Abschnitte unten behandeln jedes System, dann die Prüfungen und die Fehler, auf die man tatsächlich stößt.

Zum Ausprobieren musst du Go nicht installieren. Dieses Programm läuft in deinem Browser, auf derselben Go-Release, die die Website nutzt, und meldet, worauf es läuft:

Sobald Go lokal installiert ist, gibt dasselbe Programm die Details deines eigenen Rechners aus.

Welcher Download der richtige ist

Die Download-Seite listet eine Datei pro Betriebssystem und CPU-Architektur:

SystemDateiHinweise
Windows, die meisten PCsgo1.24.5.windows-amd64.msiamd64 bedeutet 64-Bit Intel oder AMD
Windows auf ARMgo1.24.5.windows-arm64.msiSurface Pro X, Laptops mit Snapdragon
macOS, Apple Silicon (M1 und neuer)go1.24.5.darwin-arm64.pkgdarwin ist macOS
macOS, Intelgo1.24.5.darwin-amd64.pkg
Linux, die meisten Server und PCsgo1.24.5.linux-amd64.tar.gz
Linux auf ARMgo1.24.5.linux-arm64.tar.gzRaspberry Pi 4 und 5 mit 64-Bit-Betriebssystem, AWS Graviton

Die Versionsnummer in diesen Beispielen ist 1.24.5. Nimm die jeweils neueste stabile Release; die Schritte ändern sich zwischen den Versionen nicht.

Go unter Windows installieren

  1. Lade die .msi-Datei herunter und führ sie aus.
  2. Übernimm die Standardeinstellungen. Go wird nach C:\Program Files\Go installiert, und das Installationsprogramm fügt C:\Program Files\Go\bin deinem PATH hinzu.
  3. Schließ alle offenen Fenster von Eingabeaufforderung oder PowerShell und öffne ein neues. Terminals, die während der Installation offen waren, haben noch den alten PATH.
  4. Prüf die Installation:
go version
go version go1.24.5 windows/amd64

Wenn dir ein Paketmanager lieber ist, funktioniert auch winget:

winget install GoLang.Go

Go unter macOS installieren

Mit dem offiziellen Paket

Lade das .pkg für deinen Chip herunter und öffne es. Es installiert Go nach /usr/local/go und fügt /usr/local/go/bin über die Datei /etc/paths.d/go deinem PATH hinzu. Öffne ein neues Terminal-Fenster, dann:

go version
go version go1.24.5 darwin/arm64

Mit Homebrew

brew install go
go version

Homebrew legt Go unter sein eigenes Präfix (/opt/homebrew auf Apple Silicon) und verlinkt go in ein Verzeichnis, das schon in deinem PATH liegt. Später aktualisierst du mit brew upgrade go.

Entscheide dich für eine Methode. Hast du sowohl das .pkg als auch Homebrew installiert, liegen zwei go-Binaries in deinem PATH, und das zuerst gefundene gewinnt. which go sagt dir, welches deine Shell benutzt.

Go unter Linux und Ubuntu installieren

Die offizielle Methode funktioniert auf jeder Distribution. Entferne zuerst jede vorherige Installation, denn wer über einen alten Baum entpackt, mischt Dateien aus zwei Versionen und macht die Toolchain kaputt:

cd ~/Downloads
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz

Füg Go dann deinem PATH hinzu. Häng diese Zeile an ~/.profile (bash) oder ~/.zshrc (zsh) an:

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

Lade sie in die aktuelle Shell und prüf:

source ~/.profile
go version
go version go1.24.5 linux/amd64

Ubuntu-Pakete: apt und snap

Ubuntu bietet zwei Abkürzungen mit unterschiedlichen Kompromissen:

# Distribution package: easy, but usually several releases old
sudo apt install golang-go

# Snap: tracks current Go releases
sudo snap install go --classic

Die Version von apt ist wichtiger, als es aussieht. Module geben in go.mod eine minimale Go-Version an. Ab Go 1.21 baut ein Modul mit go 1.23 nicht mit einer älteren Toolchain, außer Go kann eine neuere für dich herunterladen, und Toolchains älter als 1.21 versuchen den Build trotzdem und scheitern am ersten neueren Feature, auf das sie stoßen (siehe „Go aktuell halten“ unten). Installierst du aus apt, führ go version aus und vergleiche mit go.dev/dl.

Die Installation prüfen

Drei Befehle bestätigen ein funktionierendes Setup:

go version
go env GOROOT GOPATH
which go
go version go1.24.5 linux/amd64
/usr/local/go
/home/ana/go
/usr/local/go/bin/go
  • GOROOT ist der Ort, an dem Go selbst installiert ist. Leg dort nie eigenen Code ab, und setzen musst du es normalerweise nicht.
  • GOPATH ist standardmäßig $HOME/go (%USERPROFILE%\go unter Windows). Go speichert heruntergeladene Module in $GOPATH/pkg/mod und legt Programme, die go install baut, in $GOPATH/bin ab.
  • which go (where go unter Windows) zeigt genau das Binary, das deine Shell ausführt. Nutz es immer, wenn go version eine Version meldet, die du nicht erwartet hast.

Dein erstes Programm ausführen

Dein Code kann in jedem Verzeichnis liegen. Leg einen Ordner an, starte ein Modul und schreib eine Datei:

mkdir hello
cd hello
go mod init example.com/hello
go: creating new go.mod: module example.com/hello

Speichere das als main.go in diesem Ordner:

Dann führ es aus:

go run .
Go is installed and working.

go run . kompiliert das Paket im aktuellen Verzeichnis und führt es aus. Die Seite zu Hello World erklärt jede Zeile des Programms, und den Schritt go mod init behandelt die Seite zu Go-Modulen.

GOPATH/bin zum PATH hinzufügen

Tools, die du mit go install installierst, landen in $HOME/go/bin, und das liegt standardmäßig nicht in deinem PATH. Installierst du ein Tool und die Shell findet es nicht, füg auch dieses Verzeichnis hinzu:

go install golang.org/x/tools/cmd/goimports@latest
export PATH=$PATH:$(go env GOPATH)/bin
goimports -h

Schreib die export-Zeile in ~/.profile oder ~/.zshrc, damit sie in neuen Terminals erhalten bleibt. Unter Windows fügt das Installationsprogramm %USERPROFILE%\go\bin bereits deinem Benutzer-PATH hinzu.

Go aktuell halten

Zum Aktualisieren installierst du die neue Release auf dieselbe Weise wie die alte. Unter Linux heißt das, die Schritte mit rm -rf /usr/local/go und tar zu wiederholen; lass das Entfernen nicht aus.

Seit Go 1.21 kann der Befehl go auch bei Bedarf eine neuere Toolchain holen. Steht in der go.mod eines Moduls go 1.24 und du hast Go 1.22 installiert, lädt go build Go 1.24 in den Modul-Cache herunter und verwendet es, solange GOTOOLCHAIN auf dem Standardwert auto steht. Dein installiertes Go bleibt unverändert; nur dieses Modul wird mit der neueren Release gebaut.

Um zum Testen eine ältere Version zu behalten, installier sie parallel:

go install golang.org/dl/go1.23.4@latest
go1.23.4 download
go1.23.4 version

Häufige Fehler bei der Installation

go: command not found oder zsh: command not found: go. Die Shell findet das Binary nicht. Prüf unter Linux, dass /usr/local/go/bin in der Zeile export PATH der Datei steht, die deine Shell tatsächlich liest (~/.zshrc für zsh, ~/.profile oder ~/.bashrc für bash), und öffne dann ein neues Terminal. Mit echo $PATH siehst du, was die Shell hat.

'go' is not recognized as an internal or external command (Windows). Schließ das Terminal und öffne es neu. Bleibt der Fehler, öffne „Systemumgebungsvariablen bearbeiten“, klick auf „Umgebungsvariablen“ und stell sicher, dass C:\Program Files\Go\bin in Path steht. Das eingebaute Terminal von VS Code erbt die Umgebung, mit der VS Code gestartet wurde, also starte auch VS Code neu.

go version zeigt nach einem Update die alte Version. Zwei Installationen liegen in deinem PATH. Führ which -a go aus (oder where go unter Windows) und entferne die, die du nicht willst, oft ein apt-Paket unter /usr/bin/go, das /usr/local/go/bin/go verdeckt.

go: go.mod file not found in current directory or any parent directory. Go ist korrekt installiert; du hast go build oder go run . außerhalb eines Moduls ausgeführt. Führ zuerst go mod init example.com/yourname im Projektordner aus.

Seltsame Compilerfehler in der Standardbibliothek nach einem Update unter Linux. Das neue Tarball wurde über den alten Baum entpackt. Lösch /usr/local/go vollständig und entpacke erneut.

Permission denied beim Entpacken. /usr/local gehört root, also brauchen die Befehle rm und tar ein sudo. Dein eigener Code braucht nie sudo.

Editor einrichten

Jeder Editor funktioniert, aber installier die Go-Unterstützung, damit du Vervollständigung, Fehlermarkierung und Formatierung beim Speichern bekommst. In VS Code installierst du die offizielle Go-Erweiterung (herausgegeben vom Go-Team bei Google); sie bietet beim ersten Öffnen einer .go-Datei an, gopls zu installieren, den Go Language Server. GoLand von JetBrains ist die wichtigste kommerzielle Option. Vim und Neovim nutzen gopls über ihre LSP-Clients.

Häufig gestellte Fragen

Wie installiere ich Golang?

Lade das Installationsprogramm für dein System von go.dev/dl herunter. Unter Windows führst du die .msi aus, unter macOS das .pkg (oder brew install go), und unter Linux entpackst du das Tarball nach /usr/local und fügst /usr/local/go/bin deinem PATH hinzu. Öffne ein neues Terminal und führ zur Bestätigung go version aus.

Wie behebe ich „go: command not found“?

Die Shell findet das Binary go nicht in deinem PATH. Unter Linux fügst du export PATH=$PATH:/usr/local/go/bin in ~/.profile ein (oder in ~/.zshrc für zsh) und öffnest dann ein neues Terminal. Bei den Installationsprogrammen für Windows und macOS reicht meist, das Terminal zu schließen und neu zu öffnen, weil ein Terminal den PATH behält, mit dem es gestartet wurde.

Wie installiere ich Go unter Ubuntu?

Nimm das offizielle Tarball: sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz, dann füg /usr/local/go/bin zum PATH hinzu. sudo apt install golang-go funktioniert auch, aber das Ubuntu-Paket hinkt oft mehrere Releases hinterher. sudo snap install go --classic folgt den aktuellen Releases.

Muss ich GOPATH setzen?

Nein. Seit Go 1.16 ist der Modulmodus Standard, also kann dein Code in jedem Verzeichnis liegen. GOPATH ist standardmäßig $HOME/go und wird nur für den Download-Cache der Module und für Binaries genutzt, die go install baut und die in $HOME/go/bin landen.

Wie prüfe ich, welche Go-Version installiert ist?

Führ go version aus. Es gibt etwas wie go version go1.24.5 linux/amd64 aus: die Release, dann Betriebssystem und CPU-Architektur. go env zeigt die vollständige Konfiguration, einschließlich GOROOT (wo Go installiert ist) und GOPATH.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S