Tutorial

Установка Go и настройка локальной среды программирования в Windows 10

Published on January 24, 2020
Русский
Установка Go и настройка локальной среды программирования в Windows 10

Введение

Go — это язык программирования, созданный Google в результате разочарования в других языках. Разработчикам постоянно приходилось выбирать между эффективным языком программирования с очень длительным временем компиляции и удобным языком программирования, не отличающимся эффективностью в производственной среде. Язык Go был разработан, чтобы одновременно обеспечить все три преимущества: высокую скорость компиляции, удобство программирования и эффективное исполнение в производственной среде.

Go — это универсальный язык программирования, который можно использовать для самых разнообразных проектов. Он особенно хорошо подходит для сетевых программ и распределенных систем и заработал себе репутацию «языка облака». Он дает современным программистам больше возможностей с мощным набором инструментов, позволяет устранить разногласия по поводу форматирования, делая формат частью спецификации языка, а также упрощает развертывание за счет компиляции в единый двоичный файл. Язык Go очень прост в изучении и имеет небольшой набор ключевых слов, что делает его идеальным вариантом как для начинающих, так и для опытных программистов.

В этом обучающем руководстве вы научитесь устанавливать Go на локальном компьютере Windows 10 и настраивать среду программирования через командную строку.

Предварительные требования

Вам потребуется компьютер Windows 10 с административным доступом и подключением к Интернету.

Шаг 1 — Открытие и настройка PowerShell

Основную часть установки и настройки вы будете выполнять через командную строку — текстовый интерфейс взаимодействия с компьютером. Вместо нажатия на кнопки вы вводите текст и получаете от компьютера обратную связь также в текстовом формате. Командная строка, также называемая оболочка, помогает изменять и автоматизировать многие повседневные задачи, выполняемые на компьютерах каждый день. Это необходимый и очень важный инструмент для разработчиков программного обеспечения.

PowerShell — это программа Microsoft, обеспечивающая оболочку интерфейса командной строки. Административные задачи выполняются посредством запуска cmdlets или командлетов, которые представляют собой специализированные классы программной структуры . NET, предназначенные для выполнения операций. Исходный код программы PowerShell был раскрыт в августе 2016 г., и теперь она доступна для разных платформ Windows и UNIX (включая Mac и Linux).

Чтобы найти Windows PowerShell, щелкните правой кнопкой мыши значок меню Пуск в левом нижнем углу экрана вашего компьютера. Когда появится меню, нажмите Search (Найти) и введите PowerShell в панель поиска. В списке вариантов щелкните правой кнопкой мыши приложение Windows PowerShell. Для целей настоящего обучающего руководства нажмите Run as Administrator (Запуск от имени администратора). Когда откроется диалоговое окно Разрешить этому приложению вносить изменения на вашем устройстве?, нажмите Да.

После этого вы увидите текстовый интерфейс со строкой следующего вида:

Windows 10 PowerShell

Выйдите из системной папки с помощью следующей команды:

  1. cd ~

Теперь вы находитесь в домашнем каталоге, например, PS C:\Users\sammy.

Чтобы продолжить установку, вам нужно настроить разрешения через PowerShell. По умолчанию система настроена для работы в самом безопасном режиме, однако в качестве администратора вы можете настроить несколько уровней разрешений:

  • Restricted — политика ограничения исполнения, заданная по умолчанию. В этом режиме вы не можете запускать скрипты, и PowerShell работает только как интерактивная оболочка.
  • AllSigned — вы можете запускать все скрипты и файлы конфигурации, подписанные доверенным издателем, т. е. вы можете сделать свою систему уязвимой для вредоносных скриптов, которые выглядят как подписанные доверенным издателем.
  • RemoteSigned — вы можете запускать загруженные из интернета скрипты и файлы конфигурации, подписанные доверенными издателями, что также делает вашу систему уязвимой к таким скриптам, если они носят вредоносный характер.
  • Unrestricted — режим без ограничений, позволяющий запускать все скрипты и файлы конфигурации, загруженные из интернета сразу после того, как вы подтвердите, что понимаете, что файл загружен из интернета. В этом случае цифровая подпись не требуется, и ваша система становится уязвима для неподписанных и потенциально вредоносных скриптов, загруженных из интернета.

В этом обучающем руководстве мы используем политику исполнения RemoteSigned для установки разрешений для текущего пользователя. Она позволяет PowerShell принимать скрипты из доверенных источников, но не делает уровень разрешений таким широким, как при использовании политики Unrestricted. Введите в PowerShell следующую команду:

  1. Set-ExecutionPolicy -Scope CurrentUser

PowerShell предложит вам указать политику исполнения. Введите следующее, чтобы использовать политику RemoteSigned:

  1. RemoteSigned

После нажатия клавиши ENTER вам будет предложено подтвердить изменение политики исполнения. Введите букву y для вступления изменений в силу. Вы можете проверить вступление изменений в силу, запросив текущий уровень разрешений в системе:

  1. Get-ExecutionPolicy -List

Вы должны получить результат, выглядящий следующим образом:

Output
Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine Undefined

Это подтверждает, что текущий пользователь может запускать доверенные скрипты, загруженные из интернета. Теперь вы можете перейти к загрузке файлов, которые нам потребуются для настройки среды программирования Go.

Шаг 2 — Установка диспетчера пакетов Chocolatey

Диспетчер пакетов — это набор программных инструментов, предназначенный для автоматизации процессов установки. Он включает процесс первоначальной установки, обновления и настройки программного обеспечения, а также удаления программного обеспечения в случае необходимости. Диспетчер пакетов обеспечивает централизованное хранение установочных файлов программного обеспечения и может обслуживать все программные пакеты в системе в распространенных форматах.

Chocolatey — созданный для Windows диспетчер пакетов с интерфейсом командной строки, работающий наподобие диспетчера apt-get в Linux. Диспетчер пакетов Chocolatey с открытым исходным кодом поможет вам быстро устанавливать приложения и инструменты. Вы сможете использовать его для загрузки всего необходимого для вашей среды разработки.

Прежде чем устанавливать скрипт, прочитайте его и убедитесь, что вас устроят изменения, которые он внесет в вашу систему. Используйте систему скриптов . NET для загрузки и отображения скрипта Chocolatey в окне терминала.

Вначале создайте объект WebClient с именем $script, имеющий общие с Internet Explorer параметры подключения к интернету:

  1. $script = New-Object Net.WebClient

Для просмотра доступных опций передайте объект $script с помощью | в класс Get-Member:

  1. $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. Используйте этот метод для просмотра скрипта:

  1. $script.DownloadString("https://chocolatey.org/install.ps1")

После проверки скрипта установите Chocolatey, введя в PowerShell следующую команду:

  1. iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex

Командлет iwr, или Invoke-WebRequest, позволяет извлекать данные из веб-источников. Эта команда передает скрипт в командлет iex, или Invoke-Expression, который запускает содержимое скрипта и выполняет установку диспетчера пакетов Chocolatey.

Разрешите PowerShell выполнить установку Chocolatey. После завершения установки вы можете начать установку дополнительных инструментов с помощью команды choco.

Если вам потребуется произвести обновление Chocolatey, запустите следующую команду:

  1. choco upgrade chocolatey

После установки диспетчера пакетов вы можете установить все остальное, что требуется для среды программирования Go.

Шаг 3 — Установка текстового редактора Nano (необязательно)

На этом шаге вы выполните установку текстового редактора nano с интерфейсом командной строки. Вы можете использовать nano для написания программ в PowerShell. Это необязательно, поскольку вы также можете использовать Notepad или другой текстовый редактор с графическим интерфейсом. В этом обучающем модуле мы рекомендуем использовать nano, поскольку это поможет вам привыкнуть к работе с PowerShell.

Используйте Chocolatey для установки nano:

  1. choco install -y nano

Флаг -y автоматически подтверждает, что вы хотите запустить скрипт, не получая запросов подтверждения.

После установки nano вы сможете использовать команду nano для создания новых текстовых файлов. Вы сможете использовать ее на последующих этапах этого обучающего модуля для написания вашей первой программы на Go.

Шаг 4 — Установка Go

Как и в случае с nano, вы будете использовать Chocolatey для установки Go:

  1. choco install -y golang

Примечание: поскольку go — очень короткое слово, обычно в качестве термина при установке пакетов и при поиске в Интернете статей вместо него обычно используется термин golang. Термин Golang происходит от названия домена Go, а именно golang.org.

Теперь PowerShell выполнит установку Go и будет отображать ход выполнения в PowerShell. После завершения установки вы должны увидеть следующее:

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).

После завершения установки вы можете подтвердить установку Go. Чтобы увидеть изменения, закройте и заново откройте PowerShell от имени администратора, а затем проверьте версию Go на локальном компьютере:

  1. go version

Результаты будут выглядеть примерно так:

Output
go version go1.12.1 windows/amd643.7.0

После установки Go вы сможете настроить рабочее место для своих проектов разработки.

Шаг 5 — Создание рабочего пространства Go

Вы установили Chocolatey, nano и Go и теперь можете создать собственное рабочее пространство программирования.

На корневом уровне рабочего пространства Go имеются две директории:

  • src: это директория с исходными файлами Go. Исходный файл — это файл, который вы пишете на языке программирования Go. Компилятор Go использует исходные файлы для создания исполняемого двоичного файла.
  • bin: директория, содержащая исполняемые файлы, которые были созданы и установлены инструментами Go. Исполняемые файлы — это бинарные файлы, которые выполняются в вашей системе и выполняют задачи. Обычно это программы, скомпилированные из вашего исходного кода или из другого загруженного исходного кода Go.

Подкаталог src может содержать несколько репозиториев контроля версий (например, Git, Mercurial и Bazaar). При импорте сторонних двоичных файлов вашей программой вы увидите такие директории, как github.com или golang.org. Если вы используете репозиторий кода, например, github.com, вы также помещаете в этот каталог свои проекты и файлы исходного кода. Это обеспечивает канонический импорт кода в ваш проект. Канонический импорт — это операция импорта, которая ссылается на полностью квалифицированный пакет, например, github.com/digitalocean/godo.

Вот так выглядит типичное рабочее пространство:

.
├── 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 в версии 1.8 совпадает с домашним каталогом вашего пользователя с подкаталогом go или имеет адрес $HOME/go. Если вы используете версию Go ниже 1.8, лучше всего использовать для рабочего пространства адрес $HOME/go

Выполните следующую команду для перехода в каталог $HOME:

  1. cd $HOME

Затем создайте структуру каталогов для рабочего пространства Go:

  1. mkdir go/bin, go/src

Таким образом обеспечивается размещение следующей структуры каталогов:

└── $HOME
    └── go
        ├── bin
        └── src

До выпуска версии Go 1.8 обязательно было создавать локальную переменную среды с именем $GOPATH. Хотя это больше явно не требуется, создать такую переменную все равно полезно, поскольку многие сторонние инструменты зависят от ее использования.

Поскольку вы использовали для установки Chocolatey, эта переменная среды должна уже быть задана. Вы можете проверить это с помощью следующей команды:

  1. $env:GOPATH

Вы должны увидеть следующие результаты с вашим именем пользователя вместо sammy:

Output
C:\Users\sammy\go

При компиляции и установке инструментов Go помещает их в каталог $GOPATH/bin. Для удобства стоит добавить подкаталог bin рабочего пространства в $PATH. Для этого вы можете использовать команду setx в PowerShell:

  1. setx PATH "$($env:path);$GOPATH\bin"

Это позволит вам запускать любые компилируемые или загружаемые программы через инструменты Go в любом месте в вашей системе.

Вы создали корневой каталог рабочего пространства и задали переменную среды $GOPATH. Теперь вы сможете создавать будущие проекты со следующей структурой каталогов. В этом примере предполагается, что вы используете github.com в качестве репозитория:

$GOPATH/src/github.com/username/project

Если вы работаете над проектом https://github.com/digitalocean/godo, он помещается в следующую директорию:

$GOPATH/src/github.com/digitalocean/godo

Такая структура проектов делает их доступными с помощью инструмента go get. Также она делает проекты удобнее для чтения.

Для проверки вы можете использовать команду go get для доставки библиотеки godo:

  1. go get github.com/digitalocean/godo

Примечание: если вы не установили git, Windows откроет диалоговое окно с предложением выполнить установку. Нажмите Да, чтобы продолжить, и следуйте указаниям по установке.

Можно проверить успешную загрузку пакета godo посредством вывода каталога:

  1. 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 и настроили необходимые переменные среды. На следующем шаге мы протестируем рабочее пространство, запустив в нем код.

Шаг 6 — Создание простой программы

Мы настроили рабочее пространство Go и теперь можем создать программу “Hello, World!” Так вы убедитесь, что ваше рабочее пространство настроено правильно, и сможете лучше познакомиться с Go. Поскольку вы создаете один исходный файл Go, а не фактический проект, вам не нужно находиться в рабочем пространстве.

Откройте в домашней директории редактор nano или другой текстовый редактор командной строки и создайте новый файл:

  1. nano hello.go

Когда текстовый файл откроется в nano, наберите название вашей программы:

hello.go
package main

import "fmt"

func main() {
	fmt.Println("Hello, World!")
}

Закройте nano с помощью клавиш CTRL и X. Когда вам будет предложено сохранить файл, нажмите Y и затем ENTER.

Этот код использует пакет fmt и вызывает функцию Println с Hello, World! в качестве аргумента. В результате фраза Hello, World! распечатывается на терминале при запуске программы.

После выхода из nano и возврата в оболочку запустите программу:

  1. go run hello.go

Программа hello.go, которую вы только что создали, выведет в окне PowerShell следующее:

Output
Hello, World!

На этом шаге вы использовали простую программу для подтверждения правильности настройки рабочего пространства Go.

Заключение

Поздравляем! Вы настроили рабочее пространство программирования Go на своем локальном компьютере Windows и теперь можете начинать проект по программированию.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
1 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Как всегда в подобных мануалах ничего не работает. На шаге go get github.com/digitalocean/godo выдает ошибку. go: go.mod file not found in current directory or any parent directory. ‘go get’ is no longer supported outside a module. To build and install a command, use ‘go install’ with a version, like ‘go install example.com/cmd@latest’ For more information, see https://golang.org/doc/go-get-install-deprecatiot

В общем как обычно

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more