0

Go Zero to Hero - Bài 2: Cài đặt môi trường Go, cấu hình GOPATH và GOROOT

Việc cài đặt Go thực ra cực kỳ đơn giản, nó chỉ là một file thực thi hoặc file nén giải ra là chạy . Không lằng nhằng như cấu hình JVM của Java hay quản lý version rắc rối như Python .


1. Tải và cài đặt Go

Đầu tiên, bạn cần tải file cài đặt phù hợp với hệ điều hành của mình tại trang chủ chính thức: https://go.dev/dl/

  • Windows / macOS: Chỉ cần tải file .msi (Windows) hoặc .pkg (macOS) về và bấm Next liên tục như cài game . Bộ cài sẽ tự động thiết lập các biến môi trường cần thiết cho bạn .
  • Linux: Tải file .tar.gz và giải nén vào thư mục /usr/local bằng câu lệnh :
    rm -rf /usr/local/go && tar -C /usr/local -xzf go1.x.x.linux-amd64.tar.gz
    
    Sau đó thêm đường dẫn vào file ~/.bashrc hoặc ~/.zshrc :
    export PATH=$PATH:/usr/local/go/bin
    

Kiểm tra xem Go đã được cài đặt thành công chưa bằng cách mở Terminal/Command Prompt và gõ :

go version

Nếu màn hình in ra phiên bản Go (ví dụ: go version go1.22.x), chúc mừng bạn đã cài đặt thành công!


2. Giải mã GOROOT và GOPATH

Nếu bạn gõ lệnh go env vào Terminal, một danh sách dài các biến môi trường sẽ hiện ra . Đừng hoảng! Thực tế, bạn chỉ cần quan tâm đến hai "anh đại" này :

GOROOT: Nơi "khai sinh" của Go

  • Nó là gì? Đây chính là thư mục chứa mã nguồn cốt lõi, trình biên dịch (compiler) và các thư viện chuẩn (Standard Library) của chính ngôn ngữ Go (tương tự như thư mục cài đặt JDK trong Java) .
  • Cấu hình ra sao? Thường thì khi cài đặt, hệ thống đã tự set mặc định (ví dụ: C:\Program Files\Go trên Windows hoặc /usr/local/go trên Linux/mac) . Bạn gần như không bao giờ phải chạm vào hay sửa biến GOROOT này .

GOPATH: "Đại bản doanh" của lập trình viên

  • Nó là gì? Trước phiên bản Go 1.11, Go ép buộc tất cả các dự án bạn viết đều phải đặt bên trong một thư mục duy nhất gọi là GOPATH (thường mặc định ở ~/go trên Mac/Linux hoặc %USERPROFILE%\go trên Windows) .
  • Bên trong GOPATH truyền thống có 3 thư mục con cốt lõi :
    • src/: Chứa toàn bộ source code của bạn và cả code của các thư viện bạn tải về .
    • pkg/: Chứa các object file đã được biên dịch sẵn (để lần sau build code nhanh hơn) .
    • bin/: Chứa các file thực thi (binary) của các công cụ cài đặt qua lệnh go install .

Sự thật về GOPATH ở thời điểm hiện tại: Từ phiên bản Go 1.11 trở đi, Go giới thiệu Go Modules (go.mod) . Đây là một cuộc cách mạng! Bạn không còn bị nhốt mã nguồn của mình vào thư mục GOPATH/src nữa . Bạn có thể tạo project ở bất kỳ đâu (Desktop, ổ D, ổ E...) . Tuy nhiên, GOPATH vẫn tồn tại và làm nhiệm vụ "hậu cần": làm nơi lưu trữ cache của các thư viện tải về (giống như node_modules hay lưu cache toàn cục vậy) và chứa các tool dạng binary toàn cục .


3. Viết chương trình "Hello Cloud" đầu tiên

Đã setup xong môi trường, hãy viết thử vài dòng code để đảm bảo mọi thứ trơn tru .

Bước 1: Khởi tạo project (Sử dụng Go Modules)

Tạo một thư mục bất kỳ và mở Terminal tại đó, gõ lệnh :

mkdir my-first-go-app
cd my-first-go-app
go mod init my-first-go-app

Lệnh này sẽ tạo ra một file go.mod (tương tự như package.json trong Node.js), dùng để quản lý tên project và các thư viện phụ thuộc sau này .

Bước 2: Code file main.go

Tạo file main.go và nhập đoạn code sau :

package main

import "fmt"

func main() {
    fmt.Println("Hello bố đời! Chào mừng đến với thế giới của Golang và Cloud.")
}

Bước 3: Chạy chương trình

Bạn có hai cách để chạy :

  1. Chạy trực tiếp (như script) :
    go run main.go
    
  2. Build ra file nhị phân (binary) rồi chạy :
    go build -o app
    ./app   # Trên Windows thì gõ app.exe
    

Việc build ra file nhị phân độc lập này chính là lý do khiến Go triển khai lên Docker/Kubernetes cực kỳ gọn nhẹ như chúng ta đã bàn ở Bài 1 .


Tổng kết

Bạn đã nắm trong tay "vũ khí" và đã biết cách nạp đạn . Hãy nhớ :

  • GOROOT là nơi chứa bộ cài Go (không đụng vào) .
  • GOPATH là nơi chứa cache thư viện và các tool cài thêm .
  • Hiện tại chúng ta dùng Go Modules (go mod) để quản lý dự án ở bất kỳ thư mục nào .

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí