הורידו את Go מ-go.dev/dl, הריצו את קובץ ההתקנה של המערכת שלכם, פתחו טרמינל חדש והריצו go version. זו כל ההתקנה ב-Windows וב-macOS. ב-Linux חולצים tarball ומוסיפים תיקייה אחת ל-PATH. הסעיפים הבאים מכסים כל מערכת, ואחריה את הבדיקות ואת השגיאות שאנשים באמת נתקלים בהן.
לא צריך להתקין Go כדי לנסות אותה. התוכנית הזאת רצה בדפדפן, על אותה גרסת Go שהאתר משתמש בה, ומדווחת על מה שהיא רצה:
אחרי ש-Go מותקנת במחשב שלכם, אותה תוכנית מדפיסה את הפרטים של המחשב שלכם.
איזו הורדה לבחור
בדף ההורדות יש קובץ אחד לכל מערכת הפעלה וארכיטקטורת מעבד:
| מערכת | קובץ | הערות |
|---|---|---|
| Windows, רוב המחשבים | go1.24.5.windows-amd64.msi | amd64 פירושו Intel או AMD של 64 ביט |
| Windows על ARM | go1.24.5.windows-arm64.msi | Surface Pro X, מחשבים ניידים עם Snapdragon |
| macOS, Apple Silicon (M1 ואילך) | go1.24.5.darwin-arm64.pkg | darwin הוא macOS |
| macOS, Intel | go1.24.5.darwin-amd64.pkg | |
| Linux, רוב השרתים והמחשבים | go1.24.5.linux-amd64.tar.gz | |
| Linux על ARM | go1.24.5.linux-arm64.tar.gz | Raspberry Pi 4 ו-5 עם מערכת 64 ביט, AWS Graviton |
מספר הגרסה בדוגמאות האלה הוא 1.24.5. קחו את הגרסה היציבה העדכנית ביותר, מה שהיא לא תהיה; השלבים לא משתנים בין גרסאות.
התקנת Go ב-Windows
- הורידו את קובץ ה-
.msiוהריצו אותו. - השאירו את ברירות המחדל. Go מותקנת ב-
C:\Program Files\Go, וההתקנה מוסיפה אתC:\Program Files\Go\binל-PATHשלכם. - סגרו כל חלון Command Prompt או PowerShell פתוח ופתחו חלון חדש. לטרמינלים שהיו פתוחים בזמן ההתקנה עדיין יש את ה-
PATHהישן. - בדקו את ההתקנה:
go version
go version go1.24.5 windows/amd64
גם winget עובד, אם אתם מעדיפים מנהל חבילות:
winget install GoLang.Go
התקנת Go ב-macOS
עם החבילה הרשמית
הורידו את ה-.pkg שמתאים לשבב שלכם ופתחו אותו. הוא מתקין את Go ב-/usr/local/go ומוסיף את /usr/local/go/bin ל-PATH שלכם דרך הקובץ /etc/paths.d/go. פתחו חלון Terminal חדש, ואז:
go version
go version go1.24.5 darwin/arm64
עם Homebrew
brew install go
go version
Homebrew שם את Go תחת ה-prefix שלו (/opt/homebrew ב-Apple Silicon) ומקשר את go לתיקייה שכבר נמצאת ב-PATH שלכם. שדרגו בהמשך עם brew upgrade go.
בחרו שיטה אחת. אם יש לכם גם התקנה מה-.pkg וגם מ-Homebrew, יש שני קבצים בינאריים של go ב-PATH, וזה שמופיע ראשון מנצח. which go מראה לכם באיזה מהם ה-shell שלכם משתמש.
התקנת Go ב-Linux וב-Ubuntu
השיטה הרשמית עובדת בכל הפצה. הסירו קודם כל התקנה קודמת, כי חילוץ מעל עץ ישן מערבב קבצים משתי גרסאות ושובר את ה-toolchain:
cd ~/Downloads
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz
אחר כך הוסיפו את Go ל-PATH שלכם. הוסיפו את השורה הזאת לסוף ~/.profile (bash) או ~/.zshrc (zsh):
export PATH=$PATH:/usr/local/go/bin
טענו אותה ל-shell הנוכחי ובדקו:
source ~/.profile
go version
go version go1.24.5 linux/amd64
חבילות Ubuntu: apt ו-snap
Ubuntu מציעה שני קיצורי דרך, עם יתרונות וחסרונות שונים:
# Distribution package: easy, but usually several releases old
sudo apt install golang-go
# Snap: tracks current Go releases
sudo snap install go --classic
הגרסה של apt חשובה יותר ממה שנראה. מודולים מצהירים על גרסת Go מינימלית ב-go.mod. מ-Go 1.21 ואילך, מודול שכתוב בו go 1.23 לא ייבנה עם toolchain ישן יותר, אלא אם Go יכולה להוריד בשבילכם גרסה חדשה יותר, ו-toolchains שקודמים ל-1.21 מנסים לבנות בכל זאת ונכשלים על הפיצ'ר החדש הראשון שהם פוגשים (ראו "לשמור על Go מעודכנת" בהמשך). אם אתם מתקינים מ-apt, הריצו go version והשוו ל-go.dev/dl.
בדיקת ההתקנה
שלוש פקודות מאשרות שההתקנה עובדת:
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הוא המקום שבו Go עצמה מותקנת. לעולם אל תשימו שם קוד משלכם, ולא אמורים להיות צריכים להגדיר אותו.- ברירת המחדל של
GOPATHהיא$HOME/go(%USERPROFILE%\goב-Windows). Go שומרת מודולים שהורדו ב-$GOPATH/pkg/modומכניסה תוכניות שנבנו עםgo installל-$GOPATH/bin. which go(where goב-Windows) מראה את הקובץ הבינארי המדויק שה-shell שלכם מריץ. השתמשו בו בכל פעם ש-go versionמדווח על גרסה שלא ציפיתם לה.
להריץ את התוכנית הראשונה
הקוד שלכם יכול להיות בכל תיקייה. צרו תיקייה, התחילו מודול וכתבו קובץ:
mkdir hello
cd hello
go mod init example.com/hello
go: creating new go.mod: module example.com/hello
שמרו את זה בשם main.go באותה תיקייה:
ואז הריצו:
go run .
Go is installed and working.
go run . מקמפל את החבילה שבתיקייה הנוכחית ומריץ אותה. העמוד על hello world מסביר כל שורה בתוכנית, והשלב של go mod init מוסבר בעמוד על מודולים ב-Go.
להוסיף את GOPATH/bin ל-PATH
כלים שמותקנים עם go install נכנסים ל-$HOME/go/bin, שלא נמצא ב-PATH שלכם כברירת מחדל. אם התקנתם כלי וה-shell אומר שהוא לא מוצא אותו, הוסיפו גם את התיקייה הזאת:
go install golang.org/x/tools/cmd/goimports@latest
export PATH=$PATH:$(go env GOPATH)/bin
goimports -h
שימו את שורת ה-export ב-~/.profile או ב-~/.zshrc כדי שהיא תישמר גם בטרמינלים חדשים. ב-Windows ההתקנה כבר מוסיפה את %USERPROFILE%\go\bin ל-PATH של המשתמש שלכם.
לשמור על Go מעודכנת
כדי לשדרג, התקינו את הגרסה החדשה באותה דרך שבה התקנתם את הישנה. ב-Linux, זה אומר לחזור על השלבים של rm -rf /usr/local/go ו-tar; אל תדלגו על ההסרה.
מאז Go 1.21 הפקודה go יכולה גם להביא toolchain חדש יותר לפי הצורך. אם ב-go.mod של מודול כתוב go 1.24 ומותקנת אצלכם Go 1.22, הרצת go build מורידה את Go 1.24 ל-cache של המודולים ומשתמשת בה, כל עוד GOTOOLCHAIN נשאר בברירת המחדל שלו, auto. ה-Go המותקנת שלכם נשארת אותו דבר; רק המודול הזה נבנה עם הגרסה החדשה.
כדי להשאיר גרסה ישנה יותר לבדיקות, התקינו אותה לצד הקיימת:
go install golang.org/dl/go1.23.4@latest
go1.23.4 download
go1.23.4 version
שגיאות התקנה נפוצות
go: command not found או zsh: command not found: go. ה-shell לא מוצא את הקובץ הבינארי. ב-Linux, בדקו ש-/usr/local/go/bin נמצא בשורת ה-export PATH בקובץ שה-shell שלכם באמת קורא (~/.zshrc ב-zsh, ~/.profile או ~/.bashrc ב-bash), ואז פתחו טרמינל חדש. הריצו echo $PATH כדי לראות מה יש ל-shell.
'go' is not recognized as an internal or external command (Windows). סגרו ופתחו מחדש את הטרמינל. אם זה נמשך, פתחו את "Edit the system environment variables", לחצו על Environment Variables, וודאו ש-C:\Program Files\Go\bin נמצא ב-Path. הטרמינל המובנה של VS Code יורש את הסביבה שאיתה VS Code נפתח, אז הפעילו מחדש גם את VS Code.
go version מראה את הגרסה הישנה אחרי שדרוג. יש שתי התקנות ב-PATH שלכם. הריצו which -a go (או where go ב-Windows) והסירו את זו שאתם לא רוצים, לרוב חבילת apt ב-/usr/bin/go שמסתירה את /usr/local/go/bin/go.
go: go.mod file not found in current directory or any parent directory. Go מותקנת כמו שצריך; הרצתם go build או go run . מחוץ למודול. הריצו קודם go mod init example.com/yourname בתיקיית הפרויקט.
שגיאות קומפילציה מוזרות בספרייה הסטנדרטית אחרי שדרוג ב-Linux. ה-tarball החדש חולץ מעל העץ הישן. מחקו את /usr/local/go לגמרי וחלצו שוב.
Permission denied בזמן החילוץ. הבעלים של /usr/local הוא root, ולכן הפקודות rm ו-tar צריכות sudo. הקוד שלכם אף פעם לא צריך sudo.
הגדרת עורך קוד
כל עורך עובד, אבל התקינו תמיכה ב-Go כדי לקבל השלמה אוטומטית, סימון שגיאות ועיצוב בכל שמירה. ב-VS Code, התקינו את התוסף הרשמי של Go (שמפורסם על ידי צוות Go ב-Google); הוא מציע להתקין את gopls, ה-language server של Go, בפעם הראשונה שאתם פותחים קובץ .go. GoLand של JetBrains היא האפשרות המסחרית העיקרית. Vim ו-Neovim משתמשים ב-gopls דרך לקוחות ה-LSP שלהם.
שאלות נפוצות
איך מתקינים Golang?
הורידו את קובץ ההתקנה למערכת שלכם מ-go.dev/dl. ב-Windows הריצו את ה-.msi, ב-macOS הריצו את ה-.pkg (או brew install go), וב-Linux חלצו את ה-tarball לתוך /usr/local והוסיפו את /usr/local/go/bin ל-PATH שלכם. פתחו טרמינל חדש והריצו go version כדי לוודא.
איך מתקנים את "go: command not found"?
ה-shell לא מוצא את הקובץ הבינארי go ב-PATH שלכם. ב-Linux הוסיפו export PATH=$PATH:/usr/local/go/bin ל-~/.profile (או ל-~/.zshrc ב-zsh), ואז פתחו טרמינל חדש. אחרי קובצי ההתקנה של Windows ו-macOS התיקון הוא בדרך כלל פשוט לסגור ולפתוח מחדש את הטרמינל, כי טרמינל שומר את ה-PATH שאיתו הוא נפתח.
איך מתקינים Go ב-Ubuntu?
השתמשו ב-tarball הרשמי: sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz, ואז הוסיפו את /usr/local/go/bin ל-PATH. גם sudo apt install golang-go עובד, אבל החבילה של Ubuntu לרוב מפגרת בכמה גרסאות. sudo snap install go --classic עוקב אחרי הגרסאות העדכניות.
האם צריך להגדיר GOPATH?
לא. מאז Go 1.16, מצב המודולים הוא ברירת המחדל, כך שהקוד שלכם יכול להיות בכל תיקייה. ברירת המחדל של GOPATH היא $HOME/go, והוא משמש רק ל-cache של מודולים שהורדו ולקבצים בינאריים ש-go install בונה, שנשמרים ב-$HOME/go/bin.
איך בודקים איזו גרסה של Go מותקנת?
הריצו go version. הפלט נראה בערך כמו go version go1.24.5 linux/amd64: הגרסה, ואחריה מערכת ההפעלה וארכיטקטורת המעבד. go env מציג את כל ההגדרות, כולל GOROOT (איפה Go מותקנת) ו-GOPATH.