آموزش نصب و تنظیم Go در لوکال روی ویندوز ۱۰
در این مقاله میخوانید
احتمالاً شما هم نام زبان برنامهنویسی GO یا GoLang را شنیدهاید و میدانید که تیم قدرتمند Google این زبان برنامهنویسی را با هدف سهولت اجرای برنامههای برنامهنویسان و افزایش سرعت کامپایل کدها توسعه داده است و مناسبترین گزینه برای ساخت برنامههای توزیعشده یا تحتشبکه بهشمار میآید. از گولنگ بهعنوان زبان برنامهنویسی ابری یا سمت سرور نیز یاد میشود. کار با این زبان بسیار ساده است و تنها باید کلمات کلیدی سادهای را بهخاطر بسپارید؛ ازاینرو، گزینه مناسبی برای برنامهنویسان تازهکار بهشمار میرود. در این مقاله از مقالات آموزش ویندوز، به شما یاد میدهیم زبان برنامهنویسی Go را بهصورت Local روی ویندوز ۱۰ نصب و ازطریق خط فرمان، محیط برنامهنویسی ایجاد کنید.
خرید سرور ویندوز برای تنظیم Go در لوکال
از این مقاله میتوانید برای مدیریت سرویسهای ویندوز خود استفاده کنید و اگر قصد خرید انواع سرویس ویندوز پارس پک را دارید، میتوانید با کارشناسان فروش ما در ارتباط باشید. همچنین، میتوانید جهت کسب اطلاعات بیشتر به لینکهای زیر مراجعه کنید.
پیشنیازها
برای استفاده از این آموزش، به پیسی یا لپتاپ مجهز به ویندوز ۱۰ نیاز دارید و باید به اینترنت متصل و به Administrator دسترسی داشته باشید.
مرحله ۱. بازکردن و راهاندازی PowerShell
برای اجرای کدهای زبان برنامهنویسی گولنگ، محیط گرافیکی وجود ندارد و باید از خط فرمان استفاده کنید. بدینترتیب، باید دستورها را در محیط Shell تایپ کنید تا پاسخ سیستم بهصورت متنی برایتان ارسال شود. با استفاده از محیط شل، میتوانید دستورهایتان را سازماندهی و خودکارسازی کنید.
PowerShell یکی از برنامههایی است که مایکروسافت توسعه داده است و پوستهای ارتباطی برای خط فرمان دراختیارتان قرار میدهد. دستورهای مدیریتی با اجرای دستور Cmdlets (با تلفظ Command-lets) اجرا خواهند شد. Cmdlets یکی از کلاسهای فریمورک نرمافزاری داتنت (NET.) است که میتواند عملیاتهای مختلفی انجام دهد. PowerShell آگوست۲۰۱۶ بهصورت متنباز عرضه شد و از آن میتوان روی تمامی سیستمهایی استفاده کرد که برپایه ویندوز یا UNIX هستند.
برای دسترسی به PowerShell در ویندوز، ابتدا روی گزینه Start در گوشه پایین سمت چپ صفحه راستکلیک کنید. سپس در منو بازشده، روی گزینه Search کلیک و عبارت PowerShell را در کادر جستوجو وارد کنید. درادامه، از بین گزینههای موجود روی گزینه Windows PowerShell کلیک کنید. برای این آموزش، پاورشل را بهصورت Run As Administrator اجرا و بعد از مشاهده پیغام مرتبط، گزینه Yes را انتخاب کنید. پس از انجام این مراحل، رابط متنیای مشاهده میکنید که شبیه به تصویر زیر است:
با تایپ دستور زیر، از پوشه System خارج شوید:
cd ~
با انجام این کار، به دایرکتوری Home سیستمتان منتقل خواهید شد. این دایرکتوری چیزی شبیه به C:\Users\sammy خواهد بود. برای ادامه فرایند نصب، باید دسترسیهای لازم را ازطریق PowerShell تنظیم کنید. بهصورت پیشفرض PowerShell بهگونهای تنظیم شده است که در امنترین حالت ممکن اجرا شود؛ اما میتوانید سطح دسترسی آن را در چند Level مختلف تنظیم کنید:
- Restricted: حالت اجرای پیشفرض است. در این حالت، نمیتوانید هیچگونه اسکریپتی را اجرا کنید و PowerShell هم فقط بهعنوان پوستهای تعاملی اجرا میشود.
- AllSigned: به شما اجازه میدهد تمامی اسکریپتها و فایلهای تنظیماتی را اجرا کنید که ناشری مطمئن آنها را امضا کرده است. با این سطح دسترسی، فایلهای مخربی که ناشر مطمئن امضا کرده باشد، هم اجازه اجرا خواهند داشت.
- RemoteSigned: امکان اجرای آن دسته از اسکریپتها و فایلهای تنظیمات دانلودشده از اینترنت را به شما میدهد که ناشری مطمئن آنها را امضا کرده باشد. اگر این اسکریپتها مخرب باشند، با این دسترسی سیستمتان درمعرض خطر قرار میگیرد.
- Unrestricted: امکان اجرای تمامی فایلها و اسکریپتهای دانلودی از سطح اینترنت را به شما میدهد و فقط باید تأیید کنید که فایل مدنظر از اینترنت دانلود شده است. در این سطح، به هیچگونه امضای دیجیتالی نیازی نیست و ممکن است کامپیوترتان را درمعرض اسکریپتهای مضر قرار دهید.
در این آموزش، ما از دسترسی RemoteSigned برای تنظیم دسترسیهای کاربر فعلی استفاده میکنیم. در این سطح دسترسی، PowerShell امکان پذیرش اسکریپتهای تأییدشده را بدون بهخطرانداختن سیستم به شما میدهد. برای فعالسازی، دستور زیر را در PowerShell وارد کنید:
Set-ExecutionPolicy -Scope CurrentUser
پس از اجرای این دستور، PowerShell از شما میخواهد که سطح دسترسی را تعیین کنید. برای تنظیم دسترسی روی حالت RemoteSigned، دستور زیر را وارد کنید:
RemoteSigned
پس از فشاردادن کلید Enter، از شما خواسته میشود که تغییر سیاست دسترسی را تأیید کنید. کلید Y را بزنید تا تغییرات نهایی شوند. با تایپ دستور زیر، از اعمال تغییرات در سراسر سیستم میتوانید مطمئن شوید:
Get-ExecutionPolicy -List
خروجی دریافتی باید چیزی شبیه به خروجی زیر باشد:
Output Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine Undefined
با این سطح دسترسی، میتوانید اسکریپتهای تأییدشده را از اینترنت دانلود و سپس فایلهای موردنیاز برای راهاندازی محیط برنامهنویسی Go را نیز دانلود و نصب کنید.
مرحله ۲. نصب پکیجمنیجر Chocolatey
پکیجمنیجر مجموعهای از ابزارهای نرمافزاری هستند که فرایند نصب را برایتان خودکارسازی خواهند کرد. این پکیجها ابزارهای نصب اولیه، ارتقا، راهاندازی و حذف نرمافزارهای غیرضروری را شامل میشوند. همچنین، تمامی نرمافزارهای نصبشده را در یک محل و تمامی پکیجهای نرمافزاری را در فرمتی مشترک نگهداری میکنند.
Chocolatey پکیجمنیجری تحت خط فرمان محسوب میشود که برای ویندوز ساخته شده است و مانند apt-get در لینوکس عمل میکند. Chocolatey بهصورت متنباز دردسترس است و با استفاده از آن، میتوانید بهسرعت نرمافزارها و ابزارهای مختلف را نصب کنید. از این ابزار برای دانلود ابزارهای موردنیاز برای راهاندازی محیط توسعه استفاده میشود.
قبل از نصب هر اسکریپتی، لازم است آن را بررسی کنید تا از تغییراتی مطلع شوید که روی سیستمتان اعمال میکند. برای این کار، از فریمورک اسکریپتنویسی NET. بهره ببرید تا بتوانید اسکریپت Chocolatey را در پنجره ترمینال دانلود و مشاهده کنید. کار خودتان را با ایجاد شیء WebClient به نام $script شروع کنید که تنظیمات اتصال به اینترنت اکسپلورر را در خود نگه میدارد:
$script = New-Object Net.WebClient
با استفاده از عملگر | شیء Script را به کلاس Get-Member متصل کنید:
$script | Get-Member
این دستور تمامی اعضای شیء WebClient را برگشت میدهد:
. . . [secondary_label Snippet of Output] DownloadFileAsync Method void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur... DownloadFileTaskAsync Method System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa... DownloadString Method string DownloadString(string address), string DownloadString(uri address) #method we will use DownloadStringAsync Method void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy... DownloadStringTaskAsync Method System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy… . . .
با بررسی خروجی، روش DownloadString استفادهشده برای نمایش اسکریپت و امضاهای PowerShell را مشاهده خواهید کرد. از این شیوه برای بررسی اسکریپت استفاده کنید:
$script.DownloadString("https://chocolatey.org/install.ps1")
پس از بررسی اسکریپت، با تایپ دستور زیر در PowerShell پکیجمنیجر Chocolaty را نصب کنید:
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
دستور Invoke-WebRequest یا iwr امکان استخراج اطلاعات از سطح وب را به شما میدهد. این دستور اسکریپت را به کامندلِتز Invoke-Expression یا iex انتقال میدهد که محتویات اسکریپت را استخراج و فایل نصب پکیجمنیجر Chocolatey را اجرا میکند.
درادامه، اجازه نصب Chocolatey را به PowerShell بدهید. پس از اینکه فرایند نصب تکمیل شد، با استفاده از دستور Choco، میتوانید ابزارهای اضافی را نیز نصب کنید. برای مثال، درصورتیکه لازم است Chocolatey را در آینده بهروزرسانی کنید، فقط کافی است دستور زیر را اجرا کنید:
choco upgrade chocolatey
با نصب پکیجمنیجر، میتوانید تمامی چیزهای موردنیاز برای راهاندازی محیط برنامهنویسی Go را بهراحتی روی سیستم خودتان نصب کنید.
مرحله ۳. نصب ویرایشگر متنی Nano (اختیاری)
در این مرحله، قصد داریم ویرایشگر متنی Nano را نصب کنیم. این ویرایشگر از رابط کاربری خط فرمان استفاده میکند و با کمک آن، میتوانید مستقیماً ازطریق PowerShell برنامهنویسی کنید؛ البته از ویرایشگرهای دیگری مثل Notepad یا ++Notepad نیز میتوانید برای این کار بهره ببرید و نصب Nano اجباری نیست. باوجوداین درصورت استفاده از Nano، خیلی راحتتر به کار با PowerShell عادت میکنید. با استفاده از پکیجمنجر، Nano را نصب کنید:
choco install -y nano
فلگ y– بهصورت خودکار تأیید میکند که قصد دارید دستور بالا را اجرا کنید و لازم نیست پس از زدن کلید Enter، باردیگر این موضوع را تأیید کنید. پس از نصب Nano، میتوانید با کمک دستور Nano فایلهای متنی جدیدی ایجاد و از آنها برای نوشتن اولین برنامهتان به زبان Go استفاده کنید.
روشهای مختلف بازکردن پاورشل با دسترسی ادمین را در مقاله زیر بخوانید.
مرحله ۴. نصب Go
در این مرحله، دوباره از پکیجمنیجر Chocolatey برای نصب زبان برنامهنویسی Go استفاده میکنیم:
choco install -y golang
با تایپ این دستور، PowerShell زبان برنامهنویسی Go را برایتان نصب میکند و مراحل انجام کار را میتوانید بهصورت خروجی متنی مشاهده کنید. پس از پایان نصب، باید پیغامی شبیه به پیغام زیر را روی صفحه ببینید:
Output Environment Vars (like PATH) have changed. Close/reopen your shell to see the changes (or in powershell/cmd.exe just type `refreshenv`). The install of golang was successful. Software installed as 'msi', install location is likely default. Chocolatey installed 1/1 packages. See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
در پایان نصب، برای دیدن تغییرات یک بار PowerShell را ببندید و دوباره باز کنید. سپس با دستور زیر، نسخه نصبشده روی سیستمتان را بررسی کنید:
go version
خروجی مشاهدهشده چیزی شبیه به خروجی زیر خواهد بود:
Output go version go1.12.1 windows/amd643.7.0
اکنون میتوانید محیط کاری برای پروژههای خودتان ایجاد کنید.
مرحله ۵. ایجاد فضا (GO Workspace)
حالکه Chocolatey و Nano و Go روی سیستمتان نصب شده است، میتوانید محیط کاری برای توسعه برنامههای خودتان ایجاد کنید. محیطهای کاری Go معمولاً دو دایرکتوری روت دارند:
- Src: در این دایرکتوری، فایلهای منبع Go قرار دارند. فایل منبع (Source File) به فایلی گفته میشود که با استفاده از زبان برنامهنویسی Go نوشته میشود و کامپایلر Go پردازش میکند تا یک فایل باینری قابلاجرا ایجاد شود.
- Bin: در این دایرکتوری، فایلهای اجرایی ایجاد و نصبشده بهکمک ابزارهای Go نگهداری میشوند. فایلهای اجرایی درواقع فایلهای باینری هستند که روی سیستمتان نصب میشوند و تسکهای مختلفی را انجام میدهند. این برنامهها را معمولاً سورس کد شما یا سورس کد دانلودشده دیگر اجرا میکنند.
دایرکتوری Src ممکن است چندین مخزن ورژن کنترل (Git وMercurial و Bazaar) داشته باشد. زمانی که از کتابخانههای ثالث استفاده میکنید، ممکن است دایرکتوریهایی مثل github.com یا golang.org را مشاهده کنید. همچنین، اگر از مخزنهایی مثل github.com استفاده میکنید، پروژهها و فایلهای منبع شما نیز داخل همین دایرکتوری قرار خواهد گرفت. این موضوع امکان واردکردن کدها بهصورت Canonical Import را به شما میدهد. Canonical Import به Importهایی گفته میشود که به پکیجی کاملاً تأییدشده اشاره میکند.
Workspace معمولی تقریباً چیزی شبیه به تصویر زیر است:
. ├── bin │ ├── buffalo # command executable │ ├── dlv # command executable │ └── packr # command executable └── src └── github.com └── digitalocean └── godo ├── .git # Git repository metadata ├── account.go # package source ├── account_test.go # test source ├── ... ├── timestamp.go ├── timestamp_test.go └── util ├── droplet.go └── droplet_test.go
دایرکتوری پیشفرض برای فضاهای کاری Go در نسخه ۱.۸ همان دایرکتوری Home شما بههمراه زیردایرکتوری go خواهد بود ($HOME/go). درصورتیکه از نسخههای قدیمیتر استفاده میکنید، بهتر است دایرکتوری پیشفرض آن را به $HOME/go تغییر دهید.
با دستور زیر به دایرکتوری $Home منتقل خواهید شد:
cd $HOME
سپس، ساختار دایرکتوری را برای فضای کاری خودتان ایجاد کنید:
mkdir go/bin, go/src
با این کار، دایرکتوریهای زیر ایجاد خواهند شد:
└── $HOME └── go ├── bin └── src
تا قبل از نسخه ۱.۸، باید متغیر محیطی محلی به نام $GOPATH را نیز ایجاد میکردید. درحالحاضر، ایجاد این متغیر ضروری نیست؛ اما بهتر است آن را ایجاد کنید؛ زیرا خیلی از ابزارهای ثالث به وجود این متغیر نیاز دارند. ازآنجاکه از Chocolatey برای نصب پکیجهای مختلف استفاده میکنید، این متغیر احتمالاً ازقبل ایجاد شده است. برای تأیید این موضوع، کد زیر را وارد کنید:
$env:GOPATH
اگر تنظیمات را بهدرستی انجام داده باشید، خروجی زیر را مشاهده خواهید کرد:
Output C:\Users\sammy\go
زمانیکه Go ابزارهای مختلف را کامپایل و نصب میکند، آنها را در مسیر $GOPATH/bin قرار خواهد داد. برای راحتی بیشتر، دایرکتوری Bin فضای کاری را هم میتوانید به متغیر $path اضافه کنید. در PowerShell، این کار را با استفاده از دستور setx میتوان انجام داد:
setx PATH "$($env:path);$GOPATH\bin"
با این کار، میتوانید تمامی برنامههایی که دانلود یا خودتان کامپایل کردهاید، از هرجایی روی سیستمتان اجرا کنید. حالکه دایرکتوری اصلی Workspace و متغیرهای محیطی $GOPATH را ایجاد کردهاید، با استفاده از ساختار دایرکتوری زیر، میتوانید پروژههای آینده خودتان را ایجاد کنید. در این مثال، از گیتهاب بهعنوان منبع کد استفاده خواهد شد:
GOPATH/src/github.com/username/project
برای نمونه، اگر بخواهید روی پروژه github.com کار کنید، پروژه شما در دایرکتوری زیر قرار خواهد گرفت:
GOPATH/src/github.com/digitalocean/godo
درصورتیکه ساختار پروژههای خودتان را بهشکل زیر ایجاد کنید، در ابزار go get هم میتوانید از آنها استفاده کنید. در آینده نیز، خوانایی کدهای شما بیشتر خواهد بود. برای تأیید این موضوع، با دستور go get کتابخانه godo را دریافت کنید:
go get github.com/digitalocean/godo
نکته: اگر Git روی سیستمتان نصب نشده باشد، ویندوز دیالوگباکسی باز خواهد کرد و از شما میپرسد که آیا میخواهید Git نصب شود یا نه. برای ادامه، روی گزینه Yes کلیک و سپس مراحل نصب را دنبال کنید.
با دستور زیر، میتوانید ببینید که پکیج godo بهدرستی دانلود شده است یا خیر:
ls $env:GOPATH/src/github.com/digitalocean/godo
با دستور بالا، خروجی زیر را مشاهده خواهید کرد:
Output Directory: C:\Users\sammy\go\src\github.com\digitalocean\godo Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 4/10/2019 2:59 PM util -a---- 4/10/2019 2:59 PM 9 .gitignore -a---- 4/10/2019 2:59 PM 69 .travis.yml -a---- 4/10/2019 2:59 PM 1592 account.go -a---- 4/10/2019 2:59 PM 1679 account_test.go -rw-r--r-- 1 sammy staff 2892 Apr 5 15:56 CHANGELOG.md -rw-r--r-- 1 sammy staff 1851 Apr 5 15:56 CONTRIBUTING.md . . . -a---- 4/10/2019 2:59 PM 5076 vpcs.go -a---- 4/10/2019 2:59 PM 4309 vpcs_test.go
در این مرحله، فضای کاری برای زبان برنامهنویسی Go ایجاد و متغیرهای محیطی ضروری را برایش نصب کردیم. در مرحله بعدی، با استفاده از کدی ساده فضای کاری را امتحان خواهیم کرد.
مرحله ۶. ایجاد برنامهای ساده
اکنون که فضای کاری Go نصب و راهاندازی شده، وقت آن فرارسیده است که برنامه ساده “Hello, Word!” را بنویسیم. با این کار، مطمئن خواهیم شد که فضای کاری بهخوبی نصب شده است و شما هم میتوانید بیشتر با زبان برنامهنویسی Go آشنا شوید. البته ازآنجاکه فقط یک Source File دارید و قرار نیست روی پروژه کار کنید، نیازی نیست که داخل Workspace باشید.
در دایرکتوری Home خودتان، با استفاده از ویرایشگر متنی، فایلی جدید ایجاد کنید:
nano hello.go
با دستور بالا، فایل متنی ایجاد و برایتان باز خواهد شد. دستورهای زیر را داخل این فایل کپی کنید:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
با استفاده از کلیدهای CTRL و X، از ویرایشگر نانو خارج شوید. درادامه، از شما پرسیده میشود که میخواهید فایل را ذخیره کنید یا خیر! کلید Y و سپس کلید Enter را فشار دهید تا تغییرات ذخیره شوند. این برنامه از پکیج fmt استفاده و تابع PrintIn را با آرگومان “Hello, World!” فراخوانی میکند. دستور یادشده باعث میشود که زمان اجرای برنامه، عبارت “Hello, World!” روی ترمینال نمایش داده شود.
پس از خروج از ویرایشگر نانو، به Powershell برمیگردید. درادامه، دستور زیر را تایپ کنید تا برنامه اجرا شود:
go run hello.go
برنامهای که نوشتیم، باید خروجی زیر را روی ترمینال نمایش دهد:
Output Hello, World!
جمعبندی
در این مطلب از آموزش سیستم عامل، شما را با محیط کدنویسی و ایجاد پروژه سادهای با زبان Golang آشنا کردیم.گولنگ یکی از زبانهای برنامهنویسی منعطف و ساده و از رقبای سرسخت پایتون بهشمار میرود. از GO برای برنامهنویسیهای سمت سرور بسیار استفاده میشود؛ بههمیندلیل، یادگیری آن مزایای بسیاری برایتان بهارمغان میآورد.
سؤالات متداول
۱. زبان برنامهنویسی Go چه ویژگیهایی دارد؟
ویژگیهای مهم زبان برنامهنویسی گو عبارتاند از: سرعت زیاد کامپایل، برنامهنویسی ساده، اجرای بهینه کدهای برنامهنویسی و کارایی درخورتوجه.
۲. از زبان برنامهنویسی Go برای توسعه چه برنامههایی استفاده میشود؟
با اینکه Go زبان برنامهنویسی گستردهای است و از آن برای پروژههای برنامهنویسی متنوعی میتوانید استفاده کنید، بیشتر برای توسعه برنامههای توزیعشده یا تحتشبکه سمت سرور بهکار میرود.
۳. PowerShell چیست؟
PowerShell یکی از برنامههایی است که تیم مایکروسافت توسعه داده و پوستهای ارتباطی برای خط فرمان دراختیارتان قرار میدهد.