Menu

התקנת Golang ב-Windows, macOS ו-Linux, שלב אחר שלב

איך מורידים ומתקינים Go ב-Windows, ב-macOS וב-Linux, בודקים את ההתקנה עם go version, מבינים מה זה GOPATH ומתקנים את השגיאה "go: command not found".

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

הורידו את Go מ-go.dev/dl, הריצו את קובץ ההתקנה של המערכת שלכם, פתחו טרמינל חדש והריצו go version. זו כל ההתקנה ב-Windows וב-macOS. ב-Linux חולצים tarball ומוסיפים תיקייה אחת ל-PATH. הסעיפים הבאים מכסים כל מערכת, ואחריה את הבדיקות ואת השגיאות שאנשים באמת נתקלים בהן.

לא צריך להתקין Go כדי לנסות אותה. התוכנית הזאת רצה בדפדפן, על אותה גרסת Go שהאתר משתמש בה, ומדווחת על מה שהיא רצה:

אחרי ש-Go מותקנת במחשב שלכם, אותה תוכנית מדפיסה את הפרטים של המחשב שלכם.

איזו הורדה לבחור

בדף ההורדות יש קובץ אחד לכל מערכת הפעלה וארכיטקטורת מעבד:

מערכתקובץהערות
Windows, רוב המחשביםgo1.24.5.windows-amd64.msiamd64 פירושו Intel או AMD של 64 ביט
Windows על ARMgo1.24.5.windows-arm64.msiSurface Pro X, מחשבים ניידים עם Snapdragon
macOS, Apple Silicon (M1 ואילך)go1.24.5.darwin-arm64.pkgdarwin הוא macOS
macOS, Intelgo1.24.5.darwin-amd64.pkg
Linux, רוב השרתים והמחשביםgo1.24.5.linux-amd64.tar.gz
Linux על ARMgo1.24.5.linux-arm64.tar.gzRaspberry Pi 4 ו-5 עם מערכת 64 ביט, AWS Graviton

מספר הגרסה בדוגמאות האלה הוא 1.24.5. קחו את הגרסה היציבה העדכנית ביותר, מה שהיא לא תהיה; השלבים לא משתנים בין גרסאות.

התקנת Go ב-Windows

  1. הורידו את קובץ ה-.msi והריצו אותו.
  2. השאירו את ברירות המחדל. Go מותקנת ב-C:\Program Files\Go, וההתקנה מוסיפה את C:\Program Files\Go\bin ל-PATH שלכם.
  3. סגרו כל חלון Command Prompt או PowerShell פתוח ופתחו חלון חדש. לטרמינלים שהיו פתוחים בזמן ההתקנה עדיין יש את ה-PATH הישן.
  4. בדקו את ההתקנה:
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.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל