Tải Go từ go.dev/dl, chạy bộ cài cho hệ điều hành của bạn, mở một terminal mới và chạy go version. Trên Windows và macOS, cài đặt chỉ có vậy. Trên Linux, bạn giải nén một tarball và thêm một thư mục vào PATH. Các phần bên dưới trình bày từng hệ điều hành, rồi đến các bước kiểm tra và những lỗi mọi người thực sự gặp.
Bạn không cần cài Go để dùng thử. Chương trình này chạy ngay trên trình duyệt, trên cùng phiên bản Go mà trang web dùng, và cho biết nó đang chạy trên môi trường nào:
Khi đã cài Go trên máy, chính chương trình này sẽ in ra thông tin máy của bạn.
Chọn bản tải nào
Trang tải về liệt kê mỗi tệp cho một hệ điều hành và kiến trúc CPU:
| Hệ điều hành | Tệp | Ghi chú |
|---|---|---|
| Windows, đa số PC | go1.24.5.windows-amd64.msi | amd64 nghĩa là Intel hoặc AMD 64-bit |
| Windows trên ARM | go1.24.5.windows-arm64.msi | Surface Pro X, laptop Snapdragon |
| macOS, Apple Silicon (M1 trở lên) | go1.24.5.darwin-arm64.pkg | darwin là macOS |
| macOS, Intel | go1.24.5.darwin-amd64.pkg | |
| Linux, đa số máy chủ và PC | go1.24.5.linux-amd64.tar.gz | |
| Linux trên ARM | go1.24.5.linux-arm64.tar.gz | Raspberry Pi 4 và 5 chạy hệ điều hành 64-bit, AWS Graviton |
Số phiên bản trong các ví dụ này là 1.24.5. Hãy lấy bản ổn định mới nhất; các bước không thay đổi giữa các phiên bản.
Cài Go trên Windows
- Tải tệp
.msivà chạy nó. - Giữ các lựa chọn mặc định. Go được cài vào
C:\Program Files\Govà bộ cài thêmC:\Program Files\Go\binvàoPATH. - Đóng mọi cửa sổ Command Prompt hoặc PowerShell đang mở rồi mở một cửa sổ mới. Các terminal đã mở trong lúc cài vẫn giữ
PATHcũ. - Kiểm tra bản cài:
go version
go version go1.24.5 windows/amd64
winget cũng dùng được, nếu bạn thích trình quản lý package:
winget install GoLang.Go
Cài Go trên macOS
Bằng package chính thức
Tải tệp .pkg cho loại chip của bạn và mở nó. Bộ cài đặt Go vào /usr/local/go và thêm /usr/local/go/bin vào PATH qua tệp /etc/paths.d/go. Mở một cửa sổ Terminal mới, rồi:
go version
go version go1.24.5 darwin/arm64
Bằng Homebrew
brew install go
go version
Homebrew đặt Go dưới thư mục riêng của nó (/opt/homebrew trên Apple Silicon) và liên kết go vào một thư mục vốn đã có trong PATH. Sau này nâng cấp bằng brew upgrade go.
Hãy chọn một cách. Cài cả .pkg lẫn Homebrew nghĩa là có hai binary go trong PATH, và cái nào đứng trước sẽ thắng. which go cho bạn biết shell đang dùng cái nào.
Cài Go trên Linux và Ubuntu
Cách chính thức dùng được trên mọi bản phân phối. Hãy gỡ bản cài cũ trước, vì giải nén đè lên cây thư mục cũ sẽ trộn tệp của hai phiên bản và làm hỏng toolchain:
cd ~/Downloads
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz
Sau đó thêm Go vào PATH. Thêm dòng này vào cuối ~/.profile (bash) hoặc ~/.zshrc (zsh):
export PATH=$PATH:/usr/local/go/bin
Nạp nó vào shell hiện tại và kiểm tra:
source ~/.profile
go version
go version go1.24.5 linux/amd64
Package của Ubuntu: apt và snap
Ubuntu có hai lối tắt, mỗi cái có ưu nhược điểm riêng:
# Distribution package: easy, but usually several releases old
sudo apt install golang-go
# Snap: tracks current Go releases
sudo snap install go --classic
Phiên bản trên apt quan trọng hơn bạn tưởng. Module khai báo phiên bản Go tối thiểu trong go.mod. Từ Go 1.21, một module ghi go 1.23 sẽ không build được với toolchain cũ hơn trừ khi Go có thể tải bản mới hơn cho bạn, còn các toolchain cũ hơn 1.21 vẫn cố build và thất bại ở tính năng mới đầu tiên mà chúng gặp (xem "Giữ Go luôn mới" bên dưới). Nếu cài từ apt, hãy chạy go version và so sánh với go.dev/dl.
Kiểm tra bản cài đặt
Ba lệnh xác nhận môi trường đã chạy được:
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
GOROOTlà nơi cài chính Go. Đừng bao giờ đặt code của bạn ở đó, và bạn cũng không cần đặt biến này.GOPATHmặc định là$HOME/go(%USERPROFILE%\gotrên Windows). Go lưu các module đã tải trong$GOPATH/pkg/modvà đặt các chương trình dogo installbuild vào$GOPATH/bin.which go(where gotrên Windows) cho biết chính xác binary mà shell đang chạy. Hãy dùng nó mỗi khigo versionbáo một phiên bản bạn không ngờ tới.
Chạy chương trình đầu tiên
Code của bạn có thể nằm ở bất kỳ thư mục nào. Tạo một thư mục, khởi tạo module và viết một tệp:
mkdir hello
cd hello
go mod init example.com/hello
go: creating new go.mod: module example.com/hello
Lưu đoạn này thành main.go trong thư mục đó:
Rồi chạy nó:
go run .
Go is installed and working.
go run . biên dịch package trong thư mục hiện tại và chạy nó. Trang hello world giải thích từng dòng của chương trình, còn bước go mod init được trình bày ở trang Go modules.
Thêm GOPATH/bin vào PATH
Các công cụ cài bằng go install nằm trong $HOME/go/bin, thư mục mặc định không có trong PATH. Nếu bạn cài một công cụ mà shell báo không tìm thấy nó, hãy thêm cả thư mục này:
go install golang.org/x/tools/cmd/goimports@latest
export PATH=$PATH:$(go env GOPATH)/bin
goimports -h
Đặt dòng export vào ~/.profile hoặc ~/.zshrc để nó vẫn còn khi mở terminal mới. Trên Windows, bộ cài đã thêm sẵn %USERPROFILE%\go\bin vào PATH của người dùng.
Giữ Go luôn mới
Để nâng cấp, hãy cài bản mới theo đúng cách bạn đã cài bản cũ. Trên Linux, nghĩa là lặp lại các bước rm -rf /usr/local/go và tar; đừng bỏ qua bước xóa.
Từ Go 1.21, lệnh go cũng có thể tải một toolchain mới hơn khi cần. Nếu go.mod của một module ghi go 1.24 mà bạn đang cài Go 1.22, chạy go build sẽ tải Go 1.24 vào bộ nhớ đệm module và dùng nó, miễn là GOTOOLCHAIN để ở giá trị mặc định auto. Bản Go đã cài của bạn giữ nguyên; chỉ module đó được build bằng bản mới hơn.
Để giữ một phiên bản cũ hơn cho việc kiểm thử, hãy cài nó song song:
go install golang.org/dl/go1.23.4@latest
go1.23.4 download
go1.23.4 version
Lỗi cài đặt thường gặp
go: command not found hoặc zsh: command not found: go. Shell không tìm thấy binary. Trên Linux, kiểm tra xem /usr/local/go/bin có nằm trong dòng export PATH của đúng tệp mà shell thực sự đọc không (~/.zshrc với zsh, ~/.profile hoặc ~/.bashrc với bash), rồi mở terminal mới. Chạy echo $PATH để xem shell đang có gì.
'go' is not recognized as an internal or external command (Windows). Đóng rồi mở lại terminal. Nếu vẫn lỗi, mở "Edit the system environment variables" (Chỉnh sửa biến môi trường hệ thống), nhấn Environment Variables, và đảm bảo C:\Program Files\Go\bin có trong Path. Terminal tích hợp của VS Code kế thừa môi trường từ lúc VS Code khởi động, nên hãy khởi động lại cả VS Code.
go version vẫn hiện phiên bản cũ sau khi nâng cấp. Có hai bản cài trong PATH. Chạy which -a go (hoặc where go trên Windows) và gỡ bản bạn không cần, thường là một package apt ở /usr/bin/go che mất /usr/local/go/bin/go.
go: go.mod file not found in current directory or any parent directory. Go đã được cài đúng; bạn đã chạy go build hoặc go run . bên ngoài một module. Hãy chạy go mod init example.com/yourname trong thư mục dự án trước.
Lỗi biên dịch lạ trong thư viện chuẩn sau khi nâng cấp trên Linux. Tarball mới đã được giải nén đè lên cây thư mục cũ. Xóa hẳn /usr/local/go rồi giải nén lại.
Permission denied khi giải nén. /usr/local thuộc quyền root, nên các lệnh rm và tar cần sudo. Code của bạn thì không bao giờ cần sudo.
Cài đặt trình soạn thảo
Trình soạn thảo nào cũng được, nhưng hãy cài phần hỗ trợ Go để có tự động hoàn thành, tô sáng lỗi và định dạng khi lưu. Trong VS Code, cài extension Go chính thức (do nhóm Go tại Google phát hành); nó sẽ đề nghị cài gopls, language server của Go, vào lần đầu bạn mở một tệp .go. GoLand của JetBrains là lựa chọn thương mại chính. Vim và Neovim dùng gopls qua LSP client của chúng.
Câu hỏi thường gặp
Cài đặt Golang như thế nào?
Tải bộ cài cho hệ điều hành của bạn từ go.dev/dl. Trên Windows chạy tệp .msi, trên macOS chạy tệp .pkg (hoặc brew install go), còn trên Linux giải nén tarball vào /usr/local rồi thêm /usr/local/go/bin vào PATH. Mở một terminal mới và chạy go version để xác nhận.
Sửa lỗi "go: command not found" thế nào?
Shell không tìm thấy binary go trong PATH. Trên Linux, thêm export PATH=$PATH:/usr/local/go/bin vào ~/.profile (hoặc ~/.zshrc với zsh), rồi mở terminal mới. Với bộ cài trên Windows và macOS, cách sửa thường chỉ là đóng rồi mở lại terminal, vì terminal giữ nguyên PATH có từ lúc nó khởi động.
Cài Go trên Ubuntu như thế nào?
Dùng tarball chính thức: sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz, rồi thêm /usr/local/go/bin vào PATH. sudo apt install golang-go cũng được, nhưng package của Ubuntu thường chậm vài phiên bản. sudo snap install go --classic luôn theo kịp các bản phát hành mới.
Có cần đặt GOPATH không?
Không. Từ Go 1.16, chế độ module là mặc định, nên code của bạn có thể nằm ở bất kỳ thư mục nào. GOPATH mặc định là $HOME/go và chỉ được dùng cho bộ nhớ đệm module đã tải và cho các binary mà go install build ra, nằm trong $HOME/go/bin.
Làm sao kiểm tra phiên bản Go đã cài?
Chạy go version. Lệnh này in ra dạng như go version go1.24.5 linux/amd64: phiên bản, rồi đến hệ điều hành và kiến trúc CPU. go env hiển thị toàn bộ cấu hình, gồm GOROOT (nơi cài Go) và GOPATH.