تثبيت لغة Go وإعداد بيئة برمجة محلية على نظام Ubuntu
تُعدّ لغة Go، التي طورتها شركة Google، واحدة من اللغات البرمجية الحديثة التي تميّزت بأدائها العالي وبساطتها وسهولة تعلمها. صُممت Go لتلبية متطلبات البرمجة المعاصرة في تطوير تطبيقات الشبكات، والخوادم، والبرامج السحابية، وقد حازت على اهتمام واسع في المجتمع البرمجي نظرًا لسرعتها وقابليتها العالية للتوسع.
هذا المقال يقدم دليلًا شاملاً لتثبيت لغة Go (أو Golang) على نظام Ubuntu وإعداد بيئة تطوير متكاملة للعمل بشكل محلي، مع التركيز على تثبيت الأدوات اللازمة، تنظيم ملفات المشروع، إعداد متغيرات البيئة، وتفعيل أدوات إدارة الحزم والاختبارات، بطريقة تجعل النظام جاهزًا لتطوير مشاريع احترافية.
أولًا: التحضيرات الأولية قبل التثبيت
قبل الشروع في عملية تثبيت لغة Go، من المهم التأكد من أن نظام التشغيل Ubuntu محدث إلى أحدث نسخة مستقرة لضمان التوافق الكامل مع الحزم الحديثة. يمكن تحديث النظام عبر الأوامر التالية في الطرفية (Terminal):
bashsudo apt update sudo apt upgrade
من المفضل أيضًا تثبيت الأدوات الأساسية لتسهيل عملية التنزيل والبناء لاحقًا:
bashsudo apt install -y build-essential curl wget git
ثانيًا: تحميل وتثبيت لغة Go على Ubuntu
هناك طريقتان رئيسيتان لتثبيت Go على Ubuntu: إما من مستودعات APT الافتراضية أو من خلال الموقع الرسمي للحصول على النسخة الأحدث. يوصى غالبًا بالطريقة الثانية للحصول على آخر إصدار رسمي مستقر.
الطريقة الموصى بها: التثبيت من الموقع الرسمي
-
الذهاب إلى صفحة التنزيل الرسمية:
الموقع الرسمي للغة Go هو https://go.dev/dl/ حيث يتم عرض أحدث الإصدارات مع روابط مباشرة. -
تحميل النسخة المناسبة:
باستخدام الطرفية، يمكن تحميل آخر نسخة مستقرة من Go 64-bit (مع تحديث الرابط وفقًا للإصدار):bashwget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz -
إزالة أي نسخة سابقة:
للتأكد من عدم تعارض الإصدارات:bashsudo rm -rf /usr/local/go -
فك الضغط في المسار المناسب:
bashsudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
ثالثًا: إعداد متغيرات البيئة (Environment Variables)
بعد تثبيت Go، يجب إعداد المسارات المناسبة لتفعيل اللغة في النظام. يمكن تعديل ملف .bashrc أو .zshrc حسب الصدفة المستخدمة:
bashnano ~/.bashrc
ثم أضف في نهاية الملف الأسطر التالية:
bashexport PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
بعد الحفظ، فعّل التغييرات باستخدام:
bashsource ~/.bashrc
ويمكن التأكد من نجاح التثبيت بكتابة:
bashgo version
ينبغي أن تظهر رسالة تحتوي على إصدار Go المثبت.
رابعًا: إنشاء هيكل مشروع Go المحلي
يتطلب تطوير التطبيقات بلغة Go تنظيم ملفات المشروع ضمن بيئة واضحة المعالم. الهيكل التقليدي الذي يعتمده المبرمجون يتبع القواعد التالية:
go~/go/
├── bin/ ← الملفات التنفيذية
├── pkg/ ← الحزم المجمعة
└── src/ ← الكود المصدري للمشاريع
└── myproject/
├── main.go
└── go.mod
لإنشاء مشروع جديد:
bashmkdir -p ~/go/src/myproject
cd ~/go/src/myproject
خامسًا: استخدام go mod لإدارة الحزم
ابتداءً من Go 1.11، تم تقديم نظام الوحدات (Modules) لإدارة تبعيات المشروع، مما يبسط العمليات بشكل كبير.
داخل مجلد المشروع، استخدم الأمر التالي:
bashgo mod init myproject
سينشئ ملف go.mod الذي يحتوي على اسم الوحدة (module) والتبعيات.
عند استخدام مكتبات خارجية، تتم إضافتها تلقائيًا داخل الملف، ويتم تنزيلها وتخزينها في مجلد pkg/mod.
سادسًا: كتابة أول برنامج بلغة Go
داخل ملف main.go، يمكن تجربة البرنامج التالي:
gopackage main
import "fmt"
func main() {
fmt.Println("مرحبًا بك في عالم Go على Ubuntu!")
}
لتنفيذه:
bashgo run main.go
ولترجمة البرنامج إلى ملف تنفيذي:
bashgo build
ينتج عن ذلك ملف تنفيذي يمكن تشغيله مباشرة:
bash./myproject
سابعًا: إعداد محرر النصوص أو بيئة تطوير متكاملة
يمكن استخدام أي محرر نصوص يدعم Go، لكن من أكثر الخيارات شيوعًا:
1. Visual Studio Code
قم بتثبيته عبر Snap:
bashsudo snap install --classic code
ثم من داخل VS Code، ثبّت إضافة Go الرسمية التي توفر دعمًا لتكملة الكود، التصحيح (Debugging)، التنقل، وغيرها.
2. Vim أو Neovim مع Go Plugin
لعشاق الواجهات النصية، يمكن إعداد Vim/Neovim مع إضافات مثل vim-go لتوفير دعم كامل للغة.
ثامنًا: أدوات Go المفيدة
لغة Go تأتي مزودة بعدد من الأدوات المهمة المدمجة:
| الأمر | الوظيفة |
|---|---|
go run |
تنفيذ البرنامج مباشرة |
go build |
ترجمة الكود إلى ملف تنفيذي |
go test |
تشغيل اختبارات الوحدة |
go get |
تحميل الحزم الخارجية |
go fmt |
تنسيق الكود تلقائيًا |
go vet |
تحليل الكود لاكتشاف الأخطاء |
go doc |
استعراض التوثيق |
go mod tidy |
تنظيف وتحديث التبعيات |
مثال على تنسيق الكود:
bashgo fmt main.go
تاسعًا: كتابة اختبارات الوحدة في Go
توفر Go بنية ممتازة لاختبار الكود من خلال ملف *_test.go.
مثال:
gopackage main
import "testing"
func Add(a, b int) int {
return a + b
}
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Expected 5, but got %d", result)
}
}
لتشغيل الاختبارات:
bashgo test
عاشرًا: إعداد Go للعمل ضمن فرق تطوير باستخدام Git
يفضل إعداد Git للمشروع منذ البداية:
bashcd ~/go/src/myproject
git init
echo "bin/" >> .gitignore
echo "*.exe" >> .gitignore
echo "*.out" >> .gitignore
يمكن ربط المشروع بمستودع GitHub لإدارة الإصدارات وتطوير فرق العمل.
حادي عشر: تثبيت إصدارات متعددة من Go باستخدام GVM (اختياري)
للمطورين الذين يحتاجون لاختبار مشاريع على أكثر من إصدار:
-
تثبيت GVM:
bashbash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
-
إضافة GVM للبيئة:
bashsource ~/.gvm/scripts/gvm
-
تثبيت إصدار معين:
bashgvm install go1.21 gvm use go1.21 --default
ثاني عشر: تنظيف النظام بعد التثبيت
ينبغي حذف الملفات المؤقتة لتقليل استخدام المساحة:
bashrm go1.22.0.linux-amd64.tar.gz
ويمكن التحقق من مجلد GOPATH وتنظيم المشاريع داخله بشكل دوري لتقليل الفوضى.
جدول مقارنة أدوات إدارة الحزم في Go
| الأداة | الوظيفة الرئيسية | ملاحظات |
|---|---|---|
go get |
تنزيل وتحديث الحزم | أصبح أقل أهمية في نظام الوحدات |
go mod init |
إنشاء وحدة للمشروع | ضروري لإدارة التبعيات |
go mod tidy |
حذف التبعيات غير المستخدمة | يحافظ على نظافة go.mod و go.sum |
go install |
تثبيت أدوات أو برامج مساعدة | يستخدم لبناء وتثبيت أدوات في $GOPATH/bin |
خاتمة
إعداد بيئة تطوير بلغة Go على نظام Ubuntu يمثل خطوة استراتيجية مهمة لكل مطور يرغب في التوسع في بناء تطبيقات سريعة وفعالة. من خلال التثبيت اليدوي والتحكم في متغيرات البيئة، يصبح بالإمكان ضمان بيئة مستقرة ومرنة لتطوير البرمجيات. ومع نظام الوحدات وإدارة الحزم الحديث، تتكامل لغة Go مع أفضل ممارسات تطوير البرمجيات المعاصرة، مما يسهل صيانة الكود وتوسيع المشاريع على المدى الطويل.
المصادر:

