Установка Golang в WSL (WSL 2) с помощью Visual Studio Code
Здравствуйте! В статье представленна инструкция по установке языка программирования Golang в подсистему Linux на Windows 10 (11). Если у вас уже установлен WSL2 и Visual Studio Code, то смело переходи на 3 часть этой статьи, для всех других же.
WSL 1 (WSL 2)
Ребята из Мягкого софта написали гайд для тебя (Install WSL on Windows 10 | Microsoft Docs), но если хочешь можешь воспользоваться моими шагами.
Для начала нам необходимо включить поддержку WSL. Запустите PowerShell с правами администратора и выполните следующую команду:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
При появлении соответствующего запроса перезагрузите компьютер.
Чтобы скачать и установить предпочтительные дистрибутивы, у вас есть три варианта:

- Скачать и установить из Microsoft Store;
- Скачать и установить с помощью командной строки или сценария;
wsl --install
Команда —install выполняет следующие действия:
- Включает дополнительные компоненты WSL и Virtual Machine Platform;
- Скачивает и устанавливает последнее ядро Linux;
- Устанавливает WSL 2 по умолчанию;
- Скачивает и устанавливает дистрибутив Ubuntu Linux (может потребоваться перезагрузка)
После завершения установки вам будет предложено создать учетную запись пользователя (и ее пароль).
Информация о новой учетной записи пользователя Linux
- Учетная запись предназначена для обычного пользователя без прав администратора, который будет использоваться по умолчанию для входа в систему при запуске дистрибутива;
- Вы можете выбрать любое имя пользователя и пароль, которые не связаны с именем пользователя Windows;
- Когда вы открываете новый экземпляр дистрибутива, вам не будет предложено ввести пароль, но если вы повысите привилегии процесса, используя sudo, вам нужно будет указать пароль. Поэтому убедитесь, что вы выбрали пароль, который вы можете легко запомнить. Дополнительные сведения приведены на странице «Учетные записи пользователей и разрешения для подсистемы Windows для Linux».
Если в результате стандартной установки ваш WSL остался на первой версии, то обратитесь к Step 4.
Visual Studio Code (Remote WSL)
Берём VSC и устанавливаем Visual Studio Code — Code Editing. Redefined . Во вкладке с расширениями находим Remote WSL, устанавливаем:

После установки утилиты в VSC, вы сможете подключится к директориям в WSL. У вас есть возможность редактировать любые фалы которые находятся в WSL.
Golang
Имея WSL2 и VSCode мы готовы с вами к установке языка Golang. Зайдём на сайт и посмотрим актуальную стабильную версию (Standard library · pkg.go.dev), на момент написания статьи это go1.16.7
«Обновления обряд совершить не забудь ты»
sudo apt-get update && sudo apt-get upgrade -y
Теперь пришло время загрузить golang. Откройте терминал в VSC ( ctrl + ` ) и введите следующие команды, но замените на актуальную версию Go во время загрузки.
wget https://dl.google.com/go/go1.16.7.linux-amd64.tar.gz sudo tar -xvf go1.16.7.linux-amd64.tar.gz sudo mv go /usr/local
В дериктории пользователя /home/ откройте файл .bashrc и в самом конце файла допишите три переменные:
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
Сохраните файл и перезапустите WSL командо в PowerShell wsl —shutdown
Заходим в наш WSL и проверяем версию языка go version

Ну вот и всё! Всем удачи в использовании Golang!
Установка Go и настройка среды разработки в Windows 10
Go – это язык программирования, который появился благодаря долгим поискам команды Google. Разработчикам постоянно приходилось идти на компромисс: либо ты выбираешь эффективный язык программирования, который долго компилируется, либо выбираешь язык, который компилируется быстрее, но совершенно неэффективен в производстве. При разработке Go учитывались три главных аспекта: быстрая компиляция, простота программирования и эффективное выполнение в производстве.
Go – это универсальный язык программирования, который можно использовать для многих различных программных проектов, но особенно хорошо он подходит для сетевых программ и распределенных систем, благодаря чему он заслужил репутацию «языка облака». Его цель – помочь современному программисту сделать больше (для этого у него есть мощный набор инструментов), устранить споры о форматировании, сделав формат частью спецификации языка, а также упростить развертывание путем компиляции в один двоичный файл. Go легко изучить, так как он состоит из очень небольшого набора ключевых слов. Это отличный язык как для начинающих, так и для опытных разработчиков.
В этом мануале узнаете, как установить Go на локальный компьютер Windows 10 и настроить среду разработки с помощью командной строки.
Требования
Для работы вам нужен локальный компьютер Windows 10 с административным доступом, подключенный к Интернету.
1: Настройка PowerShell
Большая часть действий будет выполняться в командной строке. Командная строка представляет собой неграфический способ взаимодействия с компьютером. Вместо нажатия кнопок с помощью мыши вы вводите команды в виде текста и получаете обратную связь опять же в виде текста. Командная строка, также известная как оболочка, позволяет вам автоматизировать многие рутинные задачи и является важным инструментом для разработчиков программного обеспечения.
PowerShell – это программа от Microsoft, которая предоставляет интерфейс командной строки.
Административные задачи выполняются с помощью командных структур, именуемых cmdlet (произносится как командлет), это специализированные классы .NET, которые могут выполнять операции. В августе 2016 года код PowerShell стал открытым и теперь доступен на разных платформах для систем Windows и UNIX (включая Mac и Linux).
Чтобы найти Windows PowerShell, вы можете кликнуть правой кнопкой мыши значок Start в левом нижнем углу экрана. Когда появится меню, выберите Search, а затем введите PowerShell в строку поиска. Когда вы увидите список опций, щелкните правой кнопкой мыши Windows PowerShell в приложении Desktop. Для данного руководства выберите Run as Administrator. Когда появится диалоговое окно с вопросом «Do you want to allow this app to make changes to your PC?», выберите «Yes».
Как только вы это сделаете, вы увидите текстовый интерфейс.
Чтобы выйти из системной папки, введите следующую команду:
Вы попадете в домашний каталог C:\Users\8host.
Чтобы продолжить процесс установки, сначала необходимо настроить привилегии через PowerShell. По умолчанию система работает в наиболее безопасном режиме, есть несколько уровней доступа, которые вы можете настроить от имени администратора:
- Restricted – это политика выполнения по умолчанию. В этом режиме вы не сможете запускать скрипты, а PowerShell будет работать только как интерактивная оболочка.
- AllSigned позволяет вам запускать все сценарии и конфигурационные файлы, которые подписаны доверенным издателем (это означает, что вы потенциально можете подтвердить запуск вредоносных сценариев, которые подписаны доверенным издателем).
- RemoteSigned позволяет вам запускать скрипты и конфигурационные файлы, загруженные из Интернета и подписанные доверенными издателями (что снова подвергает ваш компьютер уязвимостям, если эти доверенные скрипты окажутся вредоносными).
- Unrestricted запускает все скрипты и конфигурационные файлы, загруженные из Интернета, как только вы подтвердите, что понимаете, что файл был загружен из Интернета. В этом случае цифровая подпись не требуется. Это значит, что вы рискуете запустить неподписанные и потенциально вредоносные сценарии, загруженные из Интернета.
В этом руководстве мы будем использовать политику RemoteSigned для текущего пользователя. Это позволит PowerShell принимать доверенные сценарии и при этом сохранить некоторые границы. Введите в PowerShell следующее:
Set-ExecutionPolicy -Scope CurrentUser
Затем PowerShell предложит вам указать политику выполнения. Введите следующее, чтобы использовать RemoteSigned:
Когда вы нажмете Enter, вам будет предложено подтвердить изменение в политике выполнения. Введите y, чтобы изменения вступили в силу. Вы можете убедиться, что это сработало, запросив текущие привилегии системы:
Вы должны получить вывод, который выглядит примерно так:
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:
$script = New-Object Net.WebClient
Посмотрите на доступные опции, соединив объект $script с помощью символа | с класом Get-Member:
Это вернет список свойств и методов этого объекта WebClient:
. . .
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. Используйте этот метод для проверки скрипта:
После проверки сценария установите Chocolatey, введя в PowerShell следующую команду:
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
Командлет iwr, или Invoke-WebRequest, позволяет извлекать данные из Интернета. Она передаст сценарий iex или командлет Invoke-Expression, который выполнит сценарий и запустит установку менеджера пакетов Chocolatey.
Разрешите PowerShell установить Chocolatey. Как только менеджер будет установлен, вы сможете установить дополнительные инструменты с помощью команды choco.
Если вам нужно будет обновить Chocolatey, выполните следующую команду:
choco upgrade chocolatey
3: Установка текстового редактора nano (опционально)
Теперь можно установить nano, текстовый редактор, который использует интерфейс командной строки.
Вы можете использовать nano для написания программ непосредственно в PowerShell. Это необязательный этап, так как вы также можете использовать другой текстовый редактор, например блокнот. В этом мануале рекомендуется использовать nano, поскольку это поможет вам быстрее привыкнуть к PowerShell.
Используйте Chocolatey для установки nano:
choco install -y nano
Флаг -y запускает скрипт без запроса подтверждения.
После установки редактора вы можете использовать команду nano для создания новых текстовых файлов. С его помощью вы сможете написать свою первую программу Go.
4: Установка Go
Теперь можно использовать Chocolatey для установки Go:
choco install -y golang
Примечание: Слово «go» короткое, а потому оно совпадает со многими другими пакетами. Сейчас обычно в качестве поискового запроса используют golang (в том числе и при поиске в Интернете статей, связанных с Go). Термин Golang появился благодаря домену Go, golang.org.
Теперь PowerShell установит Go, генерируя во время этого процесса выходные данные. После завершения установки вы должны увидеть следующий вывод:
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, которая появилась на вашем локальном компьютере:
Вы получите такой вывод:
go version go1.12.1 windows/amd643.7.0
После установки Go вы можете настроить рабочее пространство для своих проектов разработки.
5: Создание рабочего пространства Go
Рабочая среда Go будет содержать в корне два каталога:
- src: это каталог, содержащий исходные файлы Go. Исходный файл – это файл, который вы пишете на языке программирования Go. Исходные файлы используются компилятором Go для создания исполняемого двоичного файла.
- bin: каталог, содержащий исполняемые файлы, созданные и установленные инструментами Go. Исполняемые файлы – это двоичные файлы, которые запускаются в системе и выполняют задачи. Обычно это программы, скомпилированные из исходного кода Go.
Подкаталог src может содержать несколько репозиториев контроля версий (таких как Git, Mercurial или Bazaar). Это позволяет импортировать код в ваш проект. Канонический импорт – это импорт, который ссылается на полностью определенный пакет.
Вы увидите каталоги типа github.com или golang.org, когда ваша программа импортирует сторонние библиотеки. Если вы используете репозиторий кода, например github.com, вы должны поместить свои проекты и исходные файлы в этот каталог.
Вот так выглядит типичное рабочее пространство:
.
├── bin
│ ├── buffalo # command executable
│ ├── dlv # command executable
│ └── packr # command executable
└── src
└── github.com
└── godo
├── .git # Git reposistory metadata
├── account.go # package source
├── account_test.go # test source
├── .
├── timestamp.go
├── timestamp_test.go
└── util
├── server.go
└── server_test.go
C версии 1.8 каталог по умолчанию для рабочего пространства Go – это домашний каталог вашего пользователя с подкаталогом go или $HOME/go. Если вы используете более раннюю версию Go, рекомендуется все же использовать для вашего рабочего пространства расположение $HOME/go.
Выполните следующую команду, чтобы перейти в каталог $HOME:
Теперь нужно создать структуру каталогов для вашего рабочего пространства Go:
mkdir go/bin, go/src
В итоге получится такая структура каталогов:
До версии 1.8 требовалось устанавливать локальную переменную среды $GOPATH. Явно это больше не требуется, но по-прежнему считается хорошей практикой, поскольку многие сторонние инструменты все еще зависят от этой переменной.
Поскольку для установки вы использовали Chocolatey, эта переменная среды уже должна быть установлена. Вы можете проверить это с помощью следующей команды:
Вы увидите следующий вывод:
Когда Go компилирует и устанавливает инструменты, он помещает их в каталог $GOPATH/bin. Для удобства подкаталог /bin рабочей области добавляют в $PATH. Для этого в PowerShell используйте команду setx:
setx PATH «$($env:path);$GOPATH\bin»
Это позволит вам запускать любые программы, которые вы компилируете или загружаете с помощью инструментов Go, в любой точке вашей системы.
Теперь, когда у вас есть базовая рабочая среда и установленная переменная $GOPATH, вы можете создать следующую структуру для разработки проектов (в этом примере предполагается, что вы используете github.com в качестве хранилища):
Такое структурирование проектов позволит получать к ним доступ с помощью инструмента go get. Это также нужно для удобочитаемости.
Вы можете проверить, работает ли структура, с помощью команды go get:
go get github.com/username/project
Примечание: Если на вашем компьютере нет git, Windows откроет диалоговое окно и предложит установить его. Нажмите Yes, чтобы продолжить, и следуйте инструкциям.
Эта команда загрузит указанный проект и создаст каталог $GOPATH/src/github.com/username/project на вашей машине. Запросив каталог, вы увидите, что пакет был загружен:
ls $env:GOPATH/src/github.com/digitalocean/godo
Directory: C:\Users\8host\go\src\github.com\username\project
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 8host staff 2892 Apr 5 15:56 CHANGELOG.md
-rw-r—r— 1 8host 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
6: Создание простой программы Go
Теперь у вас есть рабочее пространство Go. Попробуйте создать в нем простую программу «Hello, World!». Так вы сможете убедиться, что среда работает, а заодно и ближе познакомиться с Go.
Поскольку сейчас мы создадим простейший исходный файл Go, а не настоящий проект, входить в рабочее пространство не обязательно.
Перейдите в домашний каталог, откройте текстовый редактор и создайте файл:
Введите следующий код:
package main
import «fmt»
func main() fmt.Println(«Hello, World!»)
>
Сохраните и закройте файл.
Этот код будет использовать пакет fmt и вызовет функцию Println с аргументом Hello, World!. Это отобразит фразу Hello, World! в терминал при запуске программы.
Когда вы выйдете из nano и вернетесь к своей оболочке, запустите программу:
Программа hello.go, которую вы только что создали, покажет следующий вывод:
Вы написали базовую программу, чтобы убедиться, что ваше рабочее пространство Go правильно настроено.
Заключение
Теперь вы можете использовать рабочее пространство Go на локальной машине macOS для создания своих собственных проектов.
Читайте также:
- Написание комментариев в Go
- Всё, что нужно знать о GOPATH
- Написание простой программы Go
Установка GoLang на Windows Server
В инструкции написано как установить Go на с Windows Server и настроить среду программирования с помощью PowerShell.
Что такое Go?
Go или GoLang – это процедурный язык программирования, появившийся благодаря разработчикам Google. Разработчикам постоянно приходилось выбирать между языками, которые выполняются эффективно, но медленно компилируются, и языками, которые быстро компилируются и легки в использовании, но работают неэффективно. Go был спроектирован таким образом, чтобы все требования были доступны одновременно: быстрая компиляция, простота программирования и эффективное выполнение.
Go легко изучить, он обладает небольшим набором ключевых слов, что делает его отличным выбором как для начинающих, так и для опытных разработчиков.
Преимущества языка Go:
- компании, в которых уже разрабатывают на Golang: Google, YouTube, Apple, Dropbox, Docker, BBC, The Economist, The New York Times, IBM, Twitter, Facebook.
- имеет хорошую поддержку. Язык финансируется Google. Его создатели, Роберт Гриземер, Роб Пайк и Кен Томпсон внесли свой вклад в такие влиятельные вещи, как C, B, Unix, JVM и другие.
- язык с открытым исходным кодом. Невероятно важно, чтобы язык программирования был открытым, для того, чтобы становиться лучше, чище и эффективнее. Если в программном коде есть дефекты, суслики (так называют разработчиков Golang) обнаружат и устранят проблемы.
- прост в использовании и быстр в изучении. Go имеет простую структуру и синтаксис. Он лишен классов, наследования, типов. Язык основан на функциях, поэтому он прост и быстр в изучении. Он организован таким образом, что обеспечивает более быструю обратную связь, сокращает время выхода на рынок и экономит время и деньги. Поэтому продукты написанные на GoLang легче обслуживать, а их разработка быстрее и дешевле.
- параллелизм. Параллелизм чрезвычайно важен в наше время. Это позволяет нескольким процессам работать одновременно и эффективно. Golang имеет эффективный параллелизм, такой же как C, C ++, Java, но в то же время параллелизм в Go выполняется намного проще благодаря процедурам, каналам и сборке мусора.
- кроссплатформенность. Он используется для различных платформ, включая версии для Windows, Linux, Unix и BSD и мобильные устройства (начиная с 2015 года). Кроме того, он хорошо компилируется на многих ОС.
- имеет сборщик мусора. Автоматическое управление памятью оказывает существенное влияние на производительность и помогает повысить эффективность параллелизма.
- уменьшает количество ошибок и багов. Поскольку это компилируемый язык с очень строгой типизацией и статической типизацией, разработчики должны быть более точными и внимательными, поэтому код получается более аккуратный и безопасный.
Открытие и настройка PowerShell
PowerShell – это программа от Microsoft, предоставляющая интерфейс командной строки. Задачи администрирования как правило выполняются с помощью командлетов, которые являются частью программной среды .NET и могут выполнять операции.
Откройте консоль PowerShell, это можно сделать с помощью поиска.
Перейдите в домашний каталог с помощью команды:
Сборка и установка программ Go

До настоящего момента в нашей серии статей о программировании на языке Go вы использовали команду go run для автоматической компиляции исходного кода и запуска получаемого исполняемого файла. Хотя эта команда полезна при тестировании кода в командной строке, распределении или развертывании, ваше приложение требует, чтобы вы выполняли сборку кода в распределяемый бинарный исполняемый файл или отдельный файл, содержащий машинный байт-код, который может запускать ваше приложение. Для этого вы можете использовать цепь инструментов Go для сборки и установки вашей программы.
В Go процесс перевода исходного кода в бинарный исполняемый файл называется сборкой. После получения исполняемого файла он будет содержать не только ваше приложение, но и вспомогательный код, необходимый для выполнения бинарного файла в целевой платформе. Это означает, что бинарному файлу Go не требуются зависимости, например инструменты Go, для запуска в новой системе, в отличие от других языков, таких как Ruby, Python или Node.js. Размещение этих исполняемых файлов в путь исполняемого файла в вашей системе позволит запускать программу из любого места в вашей системе. Этот процесс называется установкой программы в вашей системе.
В этом обучающем руководстве вы будете использовать цепь инструментов Go для запуска, сборки и установки примера программы Hello, World! , позволяющей использовать, распространять и эффективно развертывать будущие приложения.
Предварительные требования
Для выполнения примера из этой статьи вам потребуется следующее:
- Рабочее пространство Go, настроенное согласно руководству по установке Go и настройке локальной среды для разработки.
Настройка и запуск бинарного файла Go
Сначала создайте приложение для использования в качестве примера для демонстрации цепи инструментов Go. Для этого вы будете использовать классический пример программы “Hello, World!” из руководства Как написать свою первую программу на Go.
Создайте директорию greeter в директории src :
Теперь перейдите в новую директорию и создайте файл main.go в текстовом редакторе на ваш выбор:
После открытия файла добавьте следующий код:
src/greeter/main.go
package main import "fmt" func main() fmt.Println("Hello, World!") >
При запуске эта программа будет выводить фразу Hello, World! в консоль, а затем успешно завершать работу.
Сохраните и закройте файл.
Чтобы протестировать программу, воспользуйтесь командой go run , как вы уже делали в предыдущих руководствах:
Вывод должен выглядеть следующим образом:
OutputHello, World!
Как было упомянуто выше, команда go run выполняет сборку вашего исходного файла в исполняемый бинарный файл, а затем запускает скомпилированную программу. Однако в этом руководстве мы выполним сборку таким образом, чтобы вы смогли предоставить общий доступ к вашему файлу и распространять его при желании. Чтобы сделать это, мы будем использовать команду go build в следующем шаге.
Сборка бинарных файлов Go с помощью команды go build
Используя go build , вы можете сгенерировать исполняемый бинарный файл для нашего примера приложения Go, позволяющего распределять и развертывать программу, где захотите.
Попробуйте сделать это с main.go . В директории greeter запустите следующую команду:
Если вы не предоставите аргумент этой команде, go build будет автоматически компилировать программу main.go в текущем каталоге. Команда будет использовать все файлы *.go в директории. Также она выполнит сборку всего вспомогательного кода, необходимого для исполнения бинарного файла на любом компьютере с той же системной архитектурой, независимо от того, есть ли в системе исходные файлы .go или даже установка Go.
В данном случае вы создали приложение greeter в исполняемом файле, добавленном в текущую директорию. Проверьте это, запустив команду ls :
Если вы используете macOS или Linux, то найдете новый исполняемый файл, который назван по директории, где вы выполнили сборку вашей программы:
Outputgreeter main.go
Примечание. В Windows ваш исполняемый файл будет называться greeter.exe .
По умолчанию go build будет генерировать исполняемый файл для текущей платформы и архитектуры. Например, при сборке в системе linux/386 исполняемый файл будет совместимым с любой другой системой linux/386 , даже если там не установлен Go. Go поддерживает сборку для других платформ и архитектур, о чем вы можете узнать подробнее из нашей статьи Сборка приложений Go для разных операционных систем и архитектур.
Теперь, когда вы создали исполняемый файл, запустите его, чтобы убедиться, что бинарный файл сформирован корректно. В macOS или Linux запустите следующую команду:
В Windows запустите следующую команду:
Вывод бинарного файла будет соответствовать выводу, когда вы запустили программу с командой go run :
OutputHello, World!
Теперь вы создали один исполняемый бинарный файл, который содержит не только вашу программу, но и весь системный код, необходимый для запуска этого бинарного файла. Теперь вы можете распространить данную программу на новые системы или развернуть ее на сервере, зная, что файл всегда будет запускать ту же программу.
В следующем разделе настоящего руководства вы узнаете, как присваивается имя бинарного файла и как вы можете его изменить, чтобы лучше контролировать процесс сборки вашей программы.
Изменение имени бинарного файла
Теперь, когда вы знаете, как сгенерировать исполняемый файл, следующим шагом будет определение того, как Go выбирает имя бинарного файла и как можно задать собственное имя для вашего проекта.
При запуске go build по умолчанию Go будет выполнять автоматический выбор имени сгенерированного исполняемого файла. Go делает это двумя способами: если вы используете модули Go, то Go будет использовать последнюю часть имени модуля, в противном случае Go использует имя текущей директории. Этот метод использовался в последнем разделе, когда вы создали директорию greeter , перешли в нее и запустили команду go build .
Давайте более внимательно изучим метод с использованием модуля. Если у вас есть файл go.mod в проекте с объявлением module , например, как показано здесь:
module github.com/sammy/shark
Тогда имя сгенерированного исполняемого файла по умолчанию будет shark > .
В более сложных программах, требующих конкретных конвенций по наименованию, эти значения по умолчанию не всегда будут лучшим вариантом для названия вашего бинарного файла. В этих случаях лучше всего будет настроить вывод с помощью флага -o .
Чтобы протестировать это, измените имя исполняемого файла, полученного в последнем разделе, на hello и разместите его в подпапке bin . Вам не нужно создавать эту папку, Go сделает это самостоятельно при сборке.
Запустите следующую команду go build с флагом -o :
Флаг -o заставляет Go сопоставлять вывод команды с предпочитаемым вами аргументом. В данном случае результатом является новый исполняемый файл с именем hello в подпапке с именем bin .
Чтобы протестировать новый исполняемый файл, перейдите в новую директорию и запустите бинарный файл:
Результат будет выглядеть следующим образом:
OutputHello, World!
Теперь вы можете настроить имя исполняемого файла согласно требованиям вашего проекта, завершив изучение сборки бинарных файлов в Go. Но при использовании команды go build вы все равно ограничены требованием запуска вашего бинарного файла из текущей директории. Чтобы использовать вновь собранные исполняемые файлы из любого места в системе, вы можете установить их с помощью команды go install .
Установка программ Go с помощью go install
Мы уже рассказали о том, как генерировать исполняемые бинарные файлы из ваших исходных файлов .go . Эти исполняемые файлы полезны при распространении, развертывании и тестировании, но они не могут использоваться за пределами директорий с их исходным кодом. Это может стать проблемой, если вы захотите активно использовать программу, например, если вы создали инструмент командной строки для использования в рамках вашего рабочего процесса в собственной системе. Чтобы облегчить использование программ, вы можете установить их в системе и получать к ним доступ отовсюду.
Чтобы понять, что мы под этим подразумеваем, вы будете использовать команду go install для установки примера приложения.
Команда go install ведет себя почти идентично go build , но вместо того чтобы оставлять исполняемый файл в текущей директории или директории, отмеченной флагом -o , она помещает исполняемый файл в директорию $GOPATH/bin .
Чтобы найти местоположение вашей директории $GOPATH , запустите следующую команду:
Вывод, который вы получите, будет отличаться, но по умолчанию это будет директория go внутри вашей директории $HOME :
Output$HOME/go
Поскольку go install будет помещать сгенерированные исполняемые файлы в субдиректорию $GOPATH с именем bin , эта директория должна быть добавлена в переменную среды $PATH . Это описано в разделе Создание вашего рабочего пространства Go в предварительной статье Установка Go и настройка локальной среды программирования.
После настройки директории $GOPATH/bin вернитесь в директорию greeter :
Теперь запустите команду:
В результате вы создадите бинарный файл и поместите его в $GOPATH/bin . Чтобы протестировать, запустите следующую команду:
В результате вы увидите список содержимого $GOPATH/bin :
Outputgreeter
Примечание. Команда go install не поддерживает флаг -o , поэтому она использует одно из имен по умолчанию, описанных ранее, для имени исполняемого файла.
После установки бинарного файла, выполните тест, чтобы убедиться, что программа запускается вне директории источника. Перейдите обратно в домашнюю директорию:
Используйте следующую команду для запуска программы:
В результате вы получите следующее:
OutputHello, World!
Теперь вы можете брать написанные вами программы и устанавливать их в системе, что позволяет вам использовать их из любого места, когда вам потребуется.
Заключение
В этом обучающем руководстве вы продемонстрировали, как цепь инструментов Go облегчает сборку исполняемых бинарных файлов из исходного кода. Эти бинарные файлы можно распределять для запуска в других системах, даже там, где нет инструментов и среды Go. Также вы использовали команду go install для автоматической сборки и установки наших программ в качестве исполняемых файлов в $PATH системы. С помощью go build и go install у вас есть возможность предоставлять общий доступ к вашему приложению и использовать его по вашему желанию.
Теперь, когда вы получили базовое представление о go build , вы можете изучить возможность создания модульного исходного кода с помощью руководства по настройке бинарных файлов Go с помощью тегов сборки или узнать, как выполнять сборку для разных платформ с помощью руководства по сборке приложений Go для разных операционных систем и архитектур. Если вы хотите узнать больше о языке программирования Go в целом, ознакомьтесь с нашей серией статей о программировании на языке Go.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.