Здравствуйте! В статье представленна инструкция по установке языка программирования 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/<USER> откройте файл .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!

Комментарии (9)


  1. ld100
    10.08.2021 18:49
    +4

    "Отличный" совет: вместо стандартных, для конкретного дистрибутива, пакетов с возможностью автообновления поставим Go исходников.


    1. Exclipt
      10.08.2021 20:12

      зато apt update/upgrade не забыли


    1. maledog
      11.08.2021 11:04

      Версии пакетов с go обычно отстают. Так что если хочется поставить самую последнюю версию, то можно и так. Другое дело, что нужно еще git и gcc как минимум. Иначе с sqlite не поработаешь(есть драйвер на чистом go но пока уступает по функционалу сишному). А если планируется еще и мультиплатформенная разработка, то понадобятся еще и кросс-пакеты и либы. Если же нужен чистый go, тогда и смысла в wsl немного - уже несколько лет поддерживается кросскомпилляция(GOOS="linux" GOARCH="amd64" и вперед).

      Кроме того, при такой установке можно хранить go компактно в одной папке и переносить между различными дистрибутивами linux.


      1. ld100
        11.08.2021 11:33

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

        Я, например, уже год как использую в WSL kali linux, где пакеты более-менее свежие.


        1. maledog
          11.08.2021 11:59

          Использовать распоследнюю версию ubuntu тоже то еще удовольствие. Особенно когда есть софт не из основных репозитариев привязанный к определенным версиям python, определенным версиям webkit или определенным версиям wxWidgets, определенным версиям gcc. Впрочем мне все равно что там у вас в WSL. Я давно веду разработку обходясь без windows. Изредка запускаю, чтобы потестировать работу софта, собранного mingw.


  1. tempick
    10.08.2021 21:29

    Я плохо разбираюсь в сис. администрировании, и wsl только щупал пару раз. Вопрос: установка golang и других приложений/пакетов на wsl чем-то отличается от установки их просто на ubuntu?


    1. numb
      10.08.2021 21:31

      Конкретно golang - ничем. Установка в статье сделана по документации с офф. сайта для Linux


  1. wtask
    10.08.2021 22:51

    Хочется понять зачем устанавливать Go в WSL? 5й год и то и то использую и не пойму смысла этого...


  1. GAG
    11.08.2021 10:41

    Ребята из Мягкого софта написали гайд для тебя (Install WSL on Windows 10 | Microsoft Docs), но если хочешь можешь воспользоваться моими шагами.

    Cтилистика журнала ксакеп *дцатилетней давности довольно странно смотрится в 2021-м.