نزّل Go من go.dev/dl، وشغّل المثبّت الخاص بنظامك، وافتح طرفية جديدة، وشغّل go version. هذا هو التثبيت كله على Windows وmacOS. وعلى Linux تفكّ أرشيفًا وتضيف مجلدًا واحدًا إلى 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 تحت بادئته الخاصة (/opt/homebrew على Apple Silicon) ويربط go في مجلد موجود أصلًا في PATH. رقِّها لاحقًا بـ brew upgrade go.
اختر طريقة واحدة. وجود تثبيت .pkg وتثبيت Homebrew معًا يعني ملفّين go في PATH، والأسبق منهما يفوز. يخبرك which go بأيهما تستخدم صدفتك.
تثبيت Go على Linux وUbuntu
الطريقة الرسمية تعمل على كل التوزيعات. احذف أي تثبيت سابق أولًا، لأن فكّ الأرشيف فوق شجرة قديمة يخلط ملفات من إصدارين ويكسر الأدوات:
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
حمّله في الصدفة الحالية وتحقّق:
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 بأدوات أقدم ما لم تستطع Go تنزيل أحدث منها لك، والأدوات الأقدم من 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) الملف التنفيذي بالضبط الذي تشغّله صدفتك. استخدمه كلما أبلغ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 افتراضيًا. إذا ثبّتّ أداة وقالت الصدفة إنها لا تجدها، فأضف ذلك المجلد أيضًا:
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 أيضًا جلب أدوات أحدث عند الطلب. إذا قال go.mod لوحدة ما go 1.24 وكانت لديك Go 1.22 مثبّتة، فإن تشغيل go build ينزّل Go 1.24 إلى ذاكرة الوحدات ويستخدمها، ما دام 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. لا تجد الصدفة الملف التنفيذي. في Linux تحقّق من أن /usr/local/go/bin موجود في سطر export PATH داخل الملف الذي تقرؤه صدفتك فعلًا (~/.zshrc لـ zsh، و~/.profile أو ~/.bashrc لـ bash)، ثم افتح طرفية جديدة. شغّل echo $PATH لترى ما لدى الصدفة.
'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. فُكّ الأرشيف الجديد فوق الشجرة القديمة. احذف /usr/local/go بالكامل وفكّ الأرشيف مجددًا.
رفض الصلاحية عند فكّ الأرشيف. يملك root المجلد /usr/local، فيحتاج الأمران rm وtar إلى sudo. أما شيفرتك فلا تحتاج sudo أبدًا.
إعداد المحرّر
يصلح أي محرّر، لكن ثبّت دعم Go لتحصل على الإكمال التلقائي وتمييز الأخطاء والتنسيق عند الحفظ. في VS Code ثبّت إضافة Go الرسمية (ينشرها فريق Go في Google)؛ وتعرض تثبيت gopls، خادم لغة Go، أول مرة تفتح فيها ملف .go. GoLand من JetBrains هو الخيار التجاري الأساسي. ويستخدم Vim وNeovim الخادم gopls عبر عملاء LSP لديهما.
الأسئلة الشائعة
كيف أثبّت Golang؟
نزّل المثبّت الخاص بنظامك من go.dev/dl. في Windows شغّل ملف .msi، وفي macOS شغّل ملف .pkg (أو brew install go)، وفي Linux فكّ الأرشيف داخل /usr/local وأضف /usr/local/go/bin إلى PATH. افتح طرفية جديدة وشغّل go version للتأكّد.
كيف أصلح خطأ "go: command not found"؟
لا تجد الصدفة الملف التنفيذي go في PATH. في Linux أضف export PATH=$PATH:/usr/local/go/bin إلى ~/.profile (أو ~/.zshrc لـ zsh)، ثم افتح طرفية جديدة. ومع مثبّتات Windows وmacOS يكون الإصلاح عادة إغلاق الطرفية وإعادة فتحها، لأن الطرفية تحتفظ بقيمة PATH التي بدأت بها.
كيف أثبّت Go على Ubuntu؟
استخدم الأرشيف الرسمي: 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 ولا تُستخدم إلا لذاكرة تنزيل الوحدات وللملفات التنفيذية التي يبنيها go install، والتي تنتهي في $HOME/go/bin.
كيف أعرف إصدار Go المثبّت؟
شغّل go version. يطبع شيئًا مثل go version go1.24.5 linux/amd64: الإصدار، ثم نظام التشغيل ومعمارية المعالج. ويعرض go env الإعدادات كاملة، بما فيها GOROOT (مكان تثبيت Go) وGOPATH.