Windows Subsystem for Linux (WSL) — подсистема ОС Windows 10, позволяющая разработчикам, тестировщикам запускать нативные приложения Linux, писать скрипты, выполнять команды непосредственно из Windows. В обновлённой Windows 10 (2004) появилась 2я версия WSL, в которой используется полноценное ядро Linux с возможностью запуска приложений и контейнеров Docker, реализована высокая скорость загрузки, небольшой объем потребляемых ресурсов, управление в фоновом режиме, обновление ядра. Таким образом вы сможете запускать ELF64 программы, которые могут получать доступ к файловой системе Windows без использования сторонних порто (таких как Cygwin).
Образ ядра Linux (версия ядра 4.19) в Windows 10 представляет собой легкую виртуальную машину, для запуска которой не нужно ставить полноценную роль Hyper-V. Системные вызовы Linux транслируются на лету в вызовы Windows без использования эмулятора (в отличии от WSL1).
Изначально компонент WSL отключен. Чтобы его включить, вам необходимо зайти в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows (Control PanelAll Control Panel ItemsPrograms and FeaturesTurn Windows features on or off), активировать галочку Подсистема Windows для Linux (Windows Subsystem for Linux), нажать кнопку ОК, и перезагрузить компьютер.
Вы можете включить компоненты WSL в Windows 10 с помощью dism:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
или PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
В Windows Server 2004 Semi-Annual Channel (SAC) для установки компонента WSL используется командлет Install-WindowsFeature:
Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux
После этого также необходимо перезагрузить компьютер.
В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V.
Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку
Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:
wsl --set-default-version 2
Далее вам необходимо открыть Microsoft Store, в поиске ввести слово “Linux”. В появившемся списке выберите нужный дистрибутив. Доступные Ubuntu, Debian, Kali Linux, Linux Cheatsheet, SUSE Linux Enterprise Server15, openSUSE Leap 15-1, Pengwin Enterprise, Fedora Remix for WSL или другие. В нашем примере мы будем использовать Ubuntu 20.04 LTS, нажмите кнопку Получить.
Если у вас отключен Windows Store или вы хотите установить дистрибутив WSL в Core редакции Windows Server, вы можете скачать дистрибутив Ubuntu с помощью PowerShell командлета Invoke-WebRequest:
Invoke-WebRequest https://aka.ms/wslubuntu2004 -OutFile ubuntu-2004.zip –UseBasicParsing
Распакуйте архив:
Expand-Archive -Path .ubuntu-2004.zip
Запустите установку образа Linux с помощью файла Ubuntu.exe.
Также вы можете скачать образ в виде appx файла и установить его с помощью командлета Add-AppxPackage.
После установки можно проверить используемую версию WSL с помощью команды
wsl --list –-verbose
Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:
wsl --set-version Ubuntu-20.04 2
Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:Users234AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState.
После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl. При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo. В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.
Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:
wsl
ls /mnt
ls/mnt/c
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”
Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in
Ещё один пример взаимосвязи 2х систем – вы можете открыть в Windows файл из WSL-дистрибутива по сетевому пути. Для этого в CMD наберите путь к файлу:
notepad \wsl$Ubuntu-20.04home1122.txt
Из окна консоли вы можете обновить список пакетов в Ubuntu с помощью команд:
sudo apt-get update
sudo apt-get upgrade
После обновления Ubuntu папка …/LocalState будет занимать 1.5 Гб.
Из командной строки Linux можно не только просмотреть Windows-файлы и каталоги, но и получить к ним доступ. Чтобы удобнее копировать файлы, просматривать директории и их содержимое, установите файловый менеджер Midnight Commander с помощью команды
sudo apt-get install mc
Вы можете запустить Midnight Commander как в командной оболочке Bash, так и внутри CMD. На скриншоте ниже показано, что в двух панелях MC показывается список файлов с обеих ОС.
Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:
ip addr | grep eth0
В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).
С помощью пакетного менеджера apt-get установим несколько графических программ: например, браузер, текстовый редактор или что-то ещё:
sudo apt-get install gedit
sudo apt-get install firefox
sudo apt-get install x11-app
Затем создайте файл в директории root:
cd /~
vim .bash_login
впишите строку
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
сохраните запись
Esc -> :wr -> :q
Теперь можете запустить графические программы Linux через WSL командами:
firefox
или
gedit
Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:
wsl --list –all
чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:
wsl --shutdown
Раньше моей рабочей машиной был ноутбук, созданный Apple. Я мог делать на нём практически всё что угодно: разрабатывать программы, писать тексты, сочинять музыку, да и много чего ещё. Но мне не давали покоя мысли о том, что я привязан к экосистеме Apple, о том, что я зависим от прихотей этой компании. Поэтому я приступил к поискам чего-то нового.
Я начал собирать рабочую станцию под задачи машинного обучения. Поставил в неё, кроме прочего, отличный процессор, много памяти, достойную видеокарту. Практически все мои задачи я решал в Ubuntu. Правда, для работы с текстами мне нужен был Microsoft Office. Онлайновый Office тогда ещё не появился, и, давайте называть вещи своими именами, LibreOffice — это просто ужас какой-то. Для меня решением стала двойная загрузка в конфигурации Ubuntu — Windows 10. Мне невероятно понравилось то ощущение свободы, которое испытываешь, переходя с ОС от Apple на Ubuntu. А возможности, которые открываются перед тем, кто сам собирает свой компьютер, практически бесконечны.
Двойная загрузка в течение долгого времени полностью меня устраивала. А когда я миллион раз ей воспользовался, появилась технология WSL (Windows Subsystem for Linux, подсистема Windows для Linux). Когда это случилось, я начал решать некоторые свои Linux-задачи в Windows. Правда, даже так, многого для полноценной работы мне ещё не хватало. Но теперь, с выходом WSL 2, у меня возникает такое ощущение, что новая версия WSL способна кардинальным образом изменить ситуацию. Сегодня я предлагаю поговорить о том, как, с помощью WSL 2, перенести задачи по разработке программ из Linux в Windows 10. Я расскажу о новых возможностях WSL 2, и о том, что можно ожидать от этой подсистемы в будущем.
Обзор WSL 2
WSL 2 — это новая версия подсистемы Windows для Linux. В этой версии имеются некоторые изменения, определяющие то, как Linux-дистрибутивы взаимодействуют с Windows.
Microsoft любит Linux
В этом релизе WSL в распоряжении пользователя оказывается улучшенная производительность файловой системы и полная совместимость с системными вызовами. Конечно, у нас есть возможность запускать Linux либо на WSL 1, либо на WSL 2, и, более того, переключаться между разными версиями WSL можно в любое время. WSL 2 — это результат серьёзного усовершенствования базовой архитектуры системы, её новые возможности основаны на технологии виртуализации и на функционале ядра Linux. При этом Microsoft берёт на себя заботу о мелких деталях, поэтому пользователь WSL может просто заниматься своими делами, ни на что не отвлекаясь.
Установка
Microsoft обещает, что в ближайшем будущем установка WSL 2 будет выполняться очень просто, и что Linux можно будет обновлять с использованием механизма обновлений Windows. Пока же процесс установки WSL 2 требует некоторых усилий, но, на самом деле, ничего страшного тут нет.
В этом примере мы установим на Windows 10 Ubuntu 20.04. Надо отметить, что процесс установки будет одним и тем же для всех дистрибутивов Linux, доступных в Microsoft Store. Для начала нужно включить компонент Windows Subsystem for Linux. Для этого надо открыть PowerShell от имени администратора и выполнить следующую команду:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Далее, нужно обновить WSL до WSL 2. Для этого Windows 10 должна быть обновлена до версии 2004. В BIOS должна быть включена технология виртуализации Intel. Снова воспользуемся PowerShell с административными привилегиями и выполним такую команду:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Для завершения установки WSL и обновления до WSL 2 перезагрузите компьютер. Затем нужно установить WSL 2 в качестве версии WSL, используемой по умолчанию при установке новых дистрибутивов Linux. Для этого, всё так же, пользуясь PowerShell с правами администратора, выполним эту команду:
wsl --set-default-version 2
После того, как вы выполните эту команду, может появиться такое сообщение:
WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel
Сообщение, выдаваемое при попытке установки WSL 2 как подсистемы Windows для Linux, используемой по умолчанию
Перейдите по указанной ссылке и установите соответствующий MSI-файл, благодаря которому на вашу машину будет установлено ядро Linux для WSL 2. После того, как ядро будет установлено, выполните вышеприведённую команду снова. Теперь она должна завершиться успешно, не выдавая подобного сообщения.
Теперь осталось лишь установить нужный дистрибутив Linux. Для этого надо открыть Microsoft Store и поискать там Ubuntu 20.04 LTS. После установки дистрибутива в меню Пуск должен появиться ярлык для запуска Ubuntu. Запустите систему и следуйте инструкциям для завершения установки (в целом, завершение установки заключается в создании нового пользователя).
Для того чтобы проверить, действительно ли дистрибутив установлен на WSL 2, выполните такую команду:
wsl --list --verbose
Если оказалось, что используется WSL 1, то переключиться на WSL 2 можно, воспользовавшись командой такого вида:
wsl --set-version <distribution name> <versionNumber>
Вот и всё. Теперь в вашем распоряжении имеется полноценный дистрибутив Ubuntu, работающий в Windows 10.
Настройка рабочей среды для программиста
Теперь, когда в вашем распоряжении оказалась рабочая Ubuntu, вы можете устанавливать всё, что вам может понадобиться. Например, если вы — дата-сайентист, вы можете установить самый свежий дистрибутив Anaconda. Если вы — фронтенд-разработчик, то вас, например, могут заинтересовать Angular, npm и многое другое. Здесь же мне хотелось бы сосредоточиться на двух инструментах. Это — Visual Studio Code и связка Docker + Kubernetes.
▍Visual Studio Code
VS Code — это редактор кода, которому отдаёт предпочтение множество разработчиков. Одна из сильных сторон этого редактора заключается в поддержке бесконечного множества расширений. А теперь, когда мы включили WSL 2, совершенно необходимым расширением для VS Code можно назвать Remote Development.
Это расширение позволяет удалённо работать над кодом, который имеется в среде, создаваемой средствами WSL 2, в контейнере, или даже на удалённой виртуальной машине, доступ к которой осуществляется по SSH. Данное расширение позволяет, например, создать проект в ОС Linux, работающей в WSL 2, и использовать для работы над этим проектом редактор VS Code, установленный в Windows 10.
Собственно говоря, VS Code отличается огромными возможностями. Это и интеллектуальная система IntelliSense, и интеграция с git, и отладчик, и терминал, и очень много чего ещё. Полагаю, с настройкой VS Code вы справитесь и очень скоро сможете сделать из этого редактора именно то, что нужно вам.
▍Docker + Kubernetes
Docker для Windows сделан на «хорошо», но не на «отлично». На самом деле, именно Docker заставлял меня постоянно «прыгать» между Windows и Ubuntu. Например, мне приходилось делать это тогда, когда нужно было создать новый образ Docker. А вот WSL 2 отличается полной поддержкой Docker. Это, полагаю, такая возможность новой подсистемы, которая делает работу с Docker даже удобнее, чем в Linux.
Для того чтобы включить эту возможность, нужно перейти в настройки Docker Desktop и включить опцию Use the WSL 2 based engine
.
Включение поддержки Docker для WSL 2
Более того, перейдя в раздел настроек Kubernetes, можно включить возможность запуска локального кластера Kubernetes, просто установив соответствующий флажок.
Включение Kubernetes
Теперь можно перезапустить Ubuntu в WSL 2 и выполнить следующие команды:
docker version
kubectl version
Результаты выполнения подобных команд покажут, что в вашем распоряжении теперь есть Docker и Kubernetes.
Docker и Kubernetes работают в среде WSL 2
Бонус: новый терминал Windows
В качестве дополнительной полезной программы вы можете установить из Microsoft Store новый терминал Windows. В описании к нему сказано, что перед нами новое современное приложение — быстрое, эффективное и мощное. Оно предназначено для пользователей, работающих с инструментами командной строки и с соответствующими средами, наподобие PowerShell. Среди его главных возможностей можно отметить следующие: поддержка вкладок и панелей, поддержка Unicode и UTF-8, ускорение вывода текста средствами GPU, поддержка пользовательских тем, стилей и настроек.
Вот видео про новый терминал Windows.
Более того, новый терминал очень хорошо выглядит, а его внешний вид поддаётся настройке. Настройки можно выполнять, пользуясь особым JSON-файлом. Здесь можно найти темы для терминала. Вот материал, в котором можно почитать подробности о терминале.
Планы развития WSL
В WSL 2 ещё недостаёт некоторых возможностей, но подсистема Windows для Linux развивается в правильном направлении. В ближайшее время установить WSL можно будет с помощью одной команды. Для этого достаточно будет открыть терминал Windows и выполнить в нём следующее:
wsl.exe --install
Кроме того, WSL 2 будет той версией подсистемы, которая, при первой установке WSL, устанавливается по умолчанию.
Надо отметить, что разработчики очень ждут от WSL следующих возможностей: поддержка видеокарт и поддержка приложений с графическим интерфейсом.
С момента выхода WSL 1 команду разработчиков этой подсистемы чаще всего просили о внедрении в WSL поддержки CUDA или GPU Compute. В последний код команды разработчиков WSL, систем виртуализации, DirectX, Windows Driver работают над этой возможностью. Поэтому — следите за новостями.
Обучение модели, использующей технологии глубокого обучения, в WSL 2 (с использованием CUDA)
Более того, на подходе и поддержка графических приложений для Linux. Например, в Linux-системах, установленных на WSL, можно будет пользоваться текстовыми редакторами или IDE. На Windows-машине можно будет даже разрабатывать GUI-приложения для Linux!
Поддержка графического интерфейса Linux в WSL 2
Итоги
Сегодня мы поговорили о том, как, пользуясь WSL 2 можно превратить Windows-компьютер в рабочую станцию программиста, пользующегося Linux. В распоряжении такого программиста оказывается высокая производительность и множество полезных возможностей, набор которых, со временем, пополнится. Поэтому я и могу говорить о том, что двойная загрузка умерла.
А вы пользуетесь WSL 2?
Содержание
- Вариант 1: Установка в полуавтоматическом режиме
- Шаг 1: Выбор доступных дистрибутивов Linux
- Шаг 2: Запуск инсталляции
- Вариант 2: Установка в ручном режиме
- Шаг 1: Предварительная настройка системы
- Шаг 2: Загрузка и настройка ядра WSL2
- Шаг 3: Выбор и инсталляция дистрибутива Linux
- Вопросы и ответы
Вариант 1: Установка в полуавтоматическом режиме
Установка WSL в операционной системе Windows осуществляется посредством выполнения специальных команд в консоли. Для этого потребуется предварительно определиться с дистрибутивом Linux, а затем запустить процесс его инсталляции.
Важно! Приведенная ниже инструкция может быть выполнена только при условии использования Windows 10 версии 2004 (19041) и более новых. Узнать эту информацию можно в свойствах системы. Этой теме на нашем сайте посвящена отдельная статья, при необходимости ознакомьтесь с ней, перейдя по ссылке ниже.
Подробнее: Как узнать версию Windows 10
Шаг 1: Выбор доступных дистрибутивов Linux
Каждому пользователю актуальной версии Windows 10 предоставляется возможность вручную выбрать дистрибутив Linux, который будет использоваться в WSL2. Для просмотра списка доступных систем необходимо ввести специальную команду в консоль, поэтому предварительно запустите «Командную строку» с правами администратора. Сделать это можно множеством способов, например посредством поискового запроса, как показано на изображении ниже.
Читайте также: Как открыть «Командную строку» от имени администратора в Windows 10
Примечание! По умолчанию всегда выбрана последняя версия дистрибутива Ubuntu. Если именно его вы и хотите установить, то пропустите этот шаг и переходите сразу ко второму.
После того как окно консоли будет открыто, впишите или вставьте в него одну из нижеприведенных команд, после чего нажмите клавишу Enter:
wsl --list --online
или wsl -l -o
В результатах выдачи будет приведен список всех доступных дистрибутивов Linux. На этом этапе вам необходимо запомнить или скопировать в буфер обмена название, которое находится в столбце «NAME».
Обратите внимание! Если в списке доступных дистрибутивов нет желаемого, его можно импортировать в WSL2 посредством файла TAR или APPX. При необходимости есть возможность создать собственный дистрибутив на базе ядра Linux. Эти процессы описываются в официальной документации Microsoft, при необходимости ознакомиться с ними можно, воспользовавшись ссылками ниже.
Импорт любого дистрибутива Linux для использования с WSL
Создание пользовательского дистрибутива Linux для WSL
Шаг 2: Запуск инсталляции
После того как версия дистрибутива Linux для WSL2 была выбрана, можно переходить непосредственно к ее инсталляции. Делается это тоже в «Командной строке», для чего нужно воспользоваться приведенной ниже командой. Не забудьте после ее ввода нажать клавишу Enter.
wsl --install -d <НазваниеДистрибутива>
Примечание! Если вы хотите установить версию по умолчанию, тогда нет необходимости прописывать название дистрибутива вручную, можно воспользоваться следующей командой:
wsl —install
Сразу после этого начнется процесс установки платформы виртуальной машины, затем инсталлируется «Подсистема Windows для Linux», а в завершение будет выполнена загрузка ядра WSL2.
После всех этих процедур можно будет воспользоваться WSL2 для вызова подсистемы Linux. Для этого достаточно будет запустить установленный дистрибутив через меню «Пуск».
Вариант 2: Установка в ручном режиме
Если версия вашей операционной системы Windows 10 ниже 2004 (19041), тогда воспользоваться вышеприведенной инструкцией не получится и большинство действий придется выполнять вручную.
Шаг 1: Предварительная настройка системы
Первостепенно необходимо проверить, поддерживает ли установленная версия операционной системы обновление WSL до второй версии. Сделать это можно посредством вызова окна «Windows: сведения». Для этого нажмите сочетание горячих клавиш Win + R, впишите в поле запроса команду winver
и нажмите клавишу Enter.
Появится соответствующее окно, в котором будет указана версия операционной системы и ее сборка. Убедитесь, что она выше 1903 (18362). Если это так, можете продолжить выполнение этой инструкции, в противном случае попробуйте прежде обновить Windows 10 до актуальной версии.
Читайте также: Как обновить Windows 10 до последней версии
Важно! Если ваш компьютер работает на процессоре с архитектурой ARM64, этот способ установки WSL2 не подойдет. Обновитесь до последней версии Windows 10 и воспользуйтесь ранее предоставляемой инструкцией.
После того как вы удостоверились в актуальности версии операционной системы, необходимо произвести ее предварительную настройку, а именно — включить «Подсистему Windows для Linux» и компонент виртуальных машин. Делается это в оболочке PowerShell, поэтому предварительно запустите ее с правами администратора. Проще всего сделать это через контекстное меню кнопки «Пуск», как показано на изображении ниже. Но это не единственный способ.
Подробнее: Как открыть PowerShell в Windows 10
Теперь необходимо включить компонент «Подсистема Windows для Linux». Для этого скопируйте и вставьте в окно консоли PowerShell следующую команду, после чего нажмите Enter:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Ожидайте завершения процедуры, когда на экране появится приглашение к вводу новой команды. После этого включите компонент виртуальных машин. Это делается посредством нижепредставленной команды:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Важно! Если результатом ее выполнения является ошибка, потребуется предварительно включить виртуализацию. Делается это через BIOS, но сначала следует проверить статус этой функции в операционной системе. На нашем сайте есть отдельные статьи, посвященные этой теме.
Подробнее:
Как проверить, включена ли виртуализация в Windows 10
Как включить виртуализацию в BIOS
После того как компонент виртуальных машин будет установлен, потребуется перезагрузить компьютер.
Шаг 2: Загрузка и настройка ядра WSL2
Следующим шагом будет загрузка и установка ядра второй версии WSL, но изначально нужно определить архитектуру процессора, на которой работает операционная система. Для этого вызовите окно «Командной строки», в котором выполните следующую команду:
systeminfo | find "Тип системы"
В результатах выдачи будет указана архитектура процессора. Если упоминается x64, скачайте пакет обновления ядра Linux в WSL2 для 64-разрядных компьютеров на базе процессора x86. Если в результатах выдачи есть упоминание ARM64, загрузите пакет обновлений по этой ссылке. Сохраните файл в любое удобное место, после чего запустите его, дважды кликнув по названию. Далее следуйте инструкции инсталлятора, пока не будет произведена установка.
Теперь необходимо выбрать WSL2 версией по умолчанию, чтобы при установке дистрибутивов Linux они инсталлировались в этом окружении. Для этого достаточно в окне PowerShell выполнить представленную ниже команду:
wsl --set-default-version 2
Шаг 3: Выбор и инсталляция дистрибутива Linux
Как только все необходимые компоненты будут установлены, можно переходить к выбору дистрибутива Linux для инсталляции в окружении WSL2. В отличие от первого способа, представленного в этой статье, все действия будут выполняться не в «Командной строке», а в Microsoft Store. Для удобства ниже приведен список доступных систем со ссылками на них:
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 12 SP5
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin
- Pengwin Enterprise
- Alpine WSL
- Raft (пробная версия)
Воспользуйтесь нужной ссылкой, чтобы перейти в магазин приложений от Microsoft. Находясь на странице нужного дистрибутива, щелкните по кнопке «Получить», расположенной рядом с его названием.
Дождитесь завершения загрузки, после чего кликните по появившейся кнопке «Открыть». Запустится окно консоли, в котором будет предложено подождать несколько минут, пока идет распаковка дистрибутива. В дальнейшем процедура инициализации ядра Linux будет занимать считанные секунды.
Примечание! Представленный выше список дистрибутивов взят с официального сайта Microsoft и может со временем измениться. В случае необходимости рекомендуем обратиться за справкой непосредственно к статье-первоисточнику.
Как настроить полноценное окружение разработчика, привыкшего к Linux и Mac OS X.
Традиционно считается, что разработчики (в особенности связанные с бэкенд-разработкой) предпочитают использовать unix-like-системы. Причиной тому было немало. Ситуация начала несколько меняться в 2017 году — именно тогда вышел первый стабильный релиз Windows Subsystem for Linux (также известен под более ранним названием BashOnWindows), который дал разработчикам то, чего они так давно ждали, — полноценный Linux в качестве приложения в Windows!
Но не всё оказалось так просто — лишь к концу 2018 года WSL стало возможно использовать полноценно, при этом способ отнюдь не очевиден. О нём и пойдёт речь.
Конечная цель
Для начала пара слов о том, что такое вообще Windows Subsystem for Linux, он же WSL в сокращённом варианте. Это прослойка между ядром Windows и приложениями для Linux, которая позволяет преобразовывать системные вызовы к ядру Linux в вызовы к ядру Windows. Благодаря тому, что виртуализация практически отсутствует, такое решение работает быстрее традиционной виртуализации, где эмулируется целый компьютер, как это происходит в Oracle VirtualBox и VMWare Player.
Кроме того, WSL включает в себя целый ряд утилит для интеграции с Windows — пути в файловой системе автоматически преобразовываются в нужный формат, из-под Linux можно запускать приложения в Windows (но не наоборот!), Linux в WSL имеет доступ ко всем портам и сервисам в Windows.
Для разработчика основное применение WSL сразу же видится в развёртывании среды разработки именно там. Всё же установка многих языков, компиляторов и интерпретаторов, утилит происходит в Linux куда проще — часто одной командой из репозитория. Да и привычная консоль под рукой.
В статье будет рассматриваться именно настройка среды разработки в WSL — для примера возьмём небольшой проект, написанный на Python/Angular/Go (а почему бы и нет?), разрабатываемый в Visual Studio Code. Однако описанные рекомендации в целом подойдут для любого другого редактора или IDE.
Установка для Windows 10 x64
Важный момент: WSL официально поддерживается только в Windows 10 x64, начиная с Anniversary Update. Если у вас иная версия — альтернативное решение представлено в следующем разделе.
- Включить поддержку Windows Subsystem for Unix, открыв PowerShell от администратора и выполнив команду:
PS C:Windowssystem32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Если у вас установлена десктопная редакция Windows 10: зайти в Microsoft Store и установить необходимый вам дистрибутив. Для нашего эксперимента будет использована Ubuntu 18.04 LTS. Затем вы сможете запустить ваш дистрибутив через меню «Пуск».
- Если у вас установлена иная редакция Windows, без Microsoft Store (например, Windows 10 LTSC либо Windows Server): в PowerShell выполнить следующие команды:
PS C:Windowssystem32> cd ~
PS C:Userssomebody> Rename-Item .Ubuntu.appx .Ubuntu.zip
PS C:Userssomebody> Expand-Archive .Ubuntu.zip .Ubuntu
PS C:Userssomebody> cd .Ubuntu
PS C:Userssomebody> .ubuntu1804.exe
При первом запуске необходимо задать ваши логин и пароль.
Далее уже вам откроется консоль с Ubuntu.
Установка для 32-битных редакций Windows 10 и Windows 7, 8 и 8.1
К сожалению, на этих редакциях WSL не поддерживается. Но мы можем без особого труда заменить его Vagrant — мощной утилитой для конфигурирования виртуальных машин. Vagrant работает поверх других сред виртуализации: VirtualBox, VMWare Player или Microsoft Hyper-V. Поэтому стоит понимать, что такой вариант будет по умолчанию медленнее, нежели WSL. А в случае с VirtualBox значительно медленнее из-за файловой системы vboxsf.
Установить Vagrant можно с официального сайта. Также вам потребуется VirtualBox и Git. После этого создайте папку для вашей виртуальной машины, в ней создайте файл Vagrantfile со следующим содержимым:
Vagrant.configure(«2») do |config|
config.vm.box = «bento/ubuntu-18.04»
config.vm.synced_folder «c:/», «/windows»
# Необходимо указать для каждого порта, который вы хотите расшарить из ВМ или в ВМ
config.vm.network :forwarded_port, host: 5432, guest: 5432
config.vm.provider «virtualbox» do |vb|
vb.memory = 2048
end
end
После чего в том же PowerShell или cmd выполните команду:
vagrant up
После загрузки, настройки и запуска виртуальной машины вы попадёте в консоль Linux. Ура!
Устанавливаем всякие скучные вещи
Разворачиваем наше окружение под Python/JS/Go.
:~$ sudo apt update
:~$ sudo apt install build-essential
:~$ sudo apt install -y git nodejs golang python-dev libreadline-dev libbz2-dev libssl-dev libsqlite3-dev libxslt1-dev libxml2-dev libffi-dev
:~$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
:~$ # Инсталлятор попросит вас добавить загрузку pyenv в ~/.bashrc
:~$ source ~/.bashrc
:~$ pyenv install 3.7.2
:~$ pyenv global 3.7.2
Быстро проверяем работоспособность версий и, собственно, версии:
:~$ nodejs -v
v8.10.0
:~$ go version
go version go1.10.4 linux/amd64
:~$ python -V
Python 3.7.2
:~$
Неужели всё уже работает?
Конечно нет.
Сразу стоит отметить важный факт: ни Visual Studio Code, ни Sublime Text, ни даже ваша любимая IDE ничего не знают о существовании WSL. Из коробки более-менее с ним умеют работать только продукты от JetBrains. Лично мне Visual Studio Code по настройке, скорости работы нравится куда больше (но это текстовый редактор, о чём не стоит забывать).
И единственное, что вы можете сделать в Visual Studio Code, установленной на Windows, — подключить себе WSL вместо стандартного PowerShell в терминале. Это делается в User Settings:
{
«terminal.integrated.shell.windows»: «C:\Windows\System32\wsl.exe»,
# Добавьте сюда иные настройки по вашему усмотрению
}
На этом всё. Про линтер, автодополнение кода из библиотек, подсветку ошибок можете забыть, по крайней мере для Python. Способа решения сообщество ждёт вот уже три года. Сейчас самый простой и действенный способ заставить его работать — установить в WSL.
- Установите MobaXterm и Cmder. Конечно, вы можете по своему выбору заменить их на альтернативные приложения. MobaXterm — мощный SSH-терминал со встроенным X-сервером, что позволяет ему рендерить приложения, которые запускаются на удалённом X-сервере (в данном случае — внутри WSL). Cmder — локальный эмулятор терминала с поддержкой PowerShell, cmd, bash, WSL и не только, с нормальным копипастом.
- Запустите Cmder. По умолчанию он запустит cmd, но при двойном клике на нижнюю панель покажет окно, где есть возможные варианты.
- Нам нужен тот вариант, что отмечен как {WSL::bash}. Он запустит в новой вкладке консоль внутри WSL.
- Запустите MobaXterm. Он сразу же увидит WSL, установленную в системе. Для запуска X-сервера нажмите выделенную на скриншоте кнопку.
- Настроим WSL для запуска GUI-приложений. Для этого откройте файл ~/.bashrc и допишите в него:
export DISPLAY=:0
- После этого выполните команду source ~/.bashrc для применения изменений.
- Не обязательно, но желательно установить XFCE (или другой DE на ваш вкус), а также поставить шрифты, иначе от внешнего вида VS Code у вас, возможно, вытекут глаза. По крайней мере, люди жалуются.
:~$ sudo apt install -y xfce4
:~$ sudo apt install -y fonts-noto fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted
- Скачайте установщик Visual Studio Code с официального сайта.
- Установите зависимости и сам VS Code:
:~$ sudo apt install libgtk2.0-0 libxss1 libasound2
:~$ sudo dpkg -i <code deb file>
:~$ sudo apt install -f
- Запустите VS Code при помощи команды code.
Вот теперь работает Ещё более кратко и по сути расписано вот тут.
Однако до совершенства есть ещё один штрих.
{
…
«window.titleBarStyle»: «native»,
…
}
Добавьте приведённую выше настройку в User Settings. В противном случае окно VS Code не будет ресайзиться.
А ты ещё докажи, что работает
Разворачивается оно стандартно для подобного рода проектов.
# You are on a project root
:~$ python -m venv env/
:~$ source env/bin/activate
:~$ pip install -r requirements.txt
:~$ cd frontend
:~$ npm install
:~$ ng build outDir=../backend/microblog/static
:~$ cd ../backend
:~$ python manage.py runserver
Отличия в настройке между Vagrant и WSL
Единственное существенное различие в контексте статьи — необходимость пробрасывать порты в хостовую файловую систему. По умолчанию Vagrant поднимает SSH-туннель на порту 2222 — именно туда вам будет необходимо логиниться из Cmder и добавить соответствующее соединение в MobaXterm.
Более подробно об использовании Vagrant с MobaXterm можно прочитать по ссылке.
Итоги
Но стоит заметить, что даже подобные извращения могут помочь многим людям, вынужденно сталкивающимися с… не всегда очевидным поведением новой технологии от Microsoft.
Рекомендуем: Что необходимо знать о WSL2 (подсистема Windows для Linux 2).
Два способа установить WSL 2 в Windows 10
- Установить WSL 2 в Windows 10 версии 21H2
- Установить WSL 2 в Windows 10 версии 20H2
WSL 2 или Windows Subsystem для Linux 2 — это итеративное обновление подсистемы Windows для Linux. Будучи намного лучше, чем WSL 1, очевидно, что стоит обновиться до WSL 2. Опыт установки WSL в новых сборках значительно упростился. Начиная с сборки 20246 Windows 10 Insiders Preview на канале Dev, выпущенной Microsoft сегодня, пользователи могут установить полноценную WSL, одной командой. Как это сделать в Windows 10 версии 20H2 и Windows 10 21H1 сборка 20246, рассмотрим в этом руководстве. Windows Fe (Iron) появилась. Проверьте какая версия Windows 10 установлена у вас?
Установить подсистему Windows для Linux 2 (WSL 2) в Windows 10 версии 21H2
- Больше не нужно копировать и вставлять несколько команд в PowerShell.
- Больше не нужно копаться в функциях Windows.
- Больше никаких походов в Магазин.
Все, что вам нужно сделать для установки подсистемы Windows для Linux, — это:
- Открыть «Командную строку», окно «PowerShell» или «Windows Terminal» от имени Администратора и ввести команду:
wsl --install
и нажать Enter.
Это включит WSL 2, загрузит и установит последнее ядро Linux WSL 2, а затем загрузит и установит самую последнюю версию Ubuntu LTS на WSL.
Если вы хотите установить другой дистрибутив Linux, у вас есть выбор. Просто добавьте немного дополнительной информации к команде перед тем, как нажать Enter:
wsl --install -d <DistroName>
Где <DistroName> — это имя ОС, которую вы хотите установить. Вот список доступных на данный момент:
- Ubuntu
- Debian
- Kali-Linux
- openSUSE-42
- SLES-12
- Ubuntu-16.04
- Ubuntu-18.04
- Ubuntu-20.04
Например: если вы хотите установить Ubuntu 16.04, вы должны ввести:
wsl --install -d Ubuntu-16.04
Чтобы обновить ядро WSL 2 с помощью командной строки, выполните следую команду:
wsl --update
«wsl.exe –install» в конечном итоге будет перенесен в существующие сервисные кольца Windows 10, что упростит установку WSL для всех. На данный момент требуется, чтобы ваше устройство с Windows 10 было на канале Insiders Dev.
Если вам не хочется загружать предварительную версию Windows 10 и на вашем ПК установлена версия 2004 (20H1) или предыдущая, вы можете установить подсистему Windows для Linux по старинке используя способ ниже:
Установить подсистему Windows для Linux 2 (WSL 2) в Windows 10 версии 20H2
Ниже приведены требования, которые должен соответствовать ваш компьютер для правильной работы WSL 2:
- Windows 10 версия 2004 (обновление за май) или новее.
- Поддержка — Hyper — V Виртуализации.
Кроме того, для работы всех функций подсистемы Windows для Linux 2 вам необходимо будет выполнить следующие действия в указанном порядке:
- Включить опциональную функцию WSL.
- Установите дистрибутив Linux.
- Включить Платформу виртуальной машины — необязательная функция.
- Загрузить обновление ядра WSL 2 (обязательно).
- Настроить установленный дистрибутив.
1] Включить опциональную функцию WSL
Чтобы установить WSL, откройте Windows PowerShell с от имени администратора.
Выполните следующую команду:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
или
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
После того как команда будет выполнена, вы получите запрос, если вы хотите перезагрузить компьютер, нажмите Y, чтобы сделать это сразу, или нажмите N, чтобы перезагрузить его вручную, позже.
2] Установить дистрибутив
Вы можете загрузить и установить нужный вам дистрибутив Linux из Магазина Microsoft.
Подробнее в нашем руководстве: Загрузить дистрибутив Linux из Microsoft Store
3] Включить дополнительную функцию «Платформа виртуальной машины».
Чтобы включить дополнительную функцию платформы виртуальных машин, откройте Windows PowerShell от имени администратора и выполните следующую команду:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
или
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Если система запрашивает подтверждение, чтобы перезагрузить компьютер, нажмите Y, чтобы сделать это сразу, или N чтобы сделать это позже.
4] Настройте установленный дистрибутив
Наконец, нам нужно настроить установленный дистрибутив для WSL 2.
- Откройте Windows PowerShell и выполните эту команду, чтобы получить список всех доступных дистрибутивов WSL на вашем компьютере:
wsl -l -v
- Установите желаемый дистрибутив для работы в WSL 2. выполните следующую команду:
wsl --set-version DistroName 2
Где замените DistroName на имя дистрибутива из предыдущей команды.
Примечание: Команда wsl —set-version DistroName 1 позволит вам в любой момент переключится на Wsl 1.
5] WSL 2 обновление компонента ядра
- Обязательно загрузите пакет обновления ядра Linux на странице и установите его: https://aka.ms/wsl2kernel.
-
Дважды кликните файл wsl_update_x64.msi и примените обновление.
-
Запустите PowerShell от имени администратора.
-
Введите следующую команду, чтобы сделать Windows Subsystem for Linux 2 архитектурой по умолчанию для новых устанавливаемых дистрибутивов, и нажмите Enter:
wsl --set-default-version 2
После выполнения этих действий ваше устройство начнет использовать новую версию подсистемы Windows для Linux в качестве архитектуры по умолчанию.
Проверка дистрибутивной платформы
Чтобы убедиться, что ваши дистрибутивы используют подсистему Windows для Linux 2, выполните следующие действия:
-
Откройте Пуск.
-
Запустите PowerShell от имени администратора.
-
Введите следующую команду, чтобы проверить версию дистрибутива, и нажмите Enter :
wsl --list --verbose
- Убедитесь, что версия дистрибутива установлена как 2.
После того, как вы выполните эти шаги, вы узнаете, был ли процесс завершен успешно или вам нужно устранить неполадки на любом из предыдущих шагов.
Вы только что получили новый, плавный и быстрый опыт работы с подсистемой Windows для Linux 2.
WSL 2 значительно улучшит производительность файловой системы и полную совместимость системных вызовов. Это новое обновление основано на виртуализации (которая основана на Hyper-V), и работает на реальном ядре Linux.
Примечание: Некоторые из устаревших дистрибутивов WSL не предназначены для работы под WSL 2. Вот список WSL 2-совместимых дистрибутивов.
- Ubuntu
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 12 SP5
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin
- Pengwin Enterprise
- Alpine WSL
Вам может быть интересно:
- Как установить подсистему Windows для Linux.
- Доступ к файлам WSL Linux с помощью Проводника Windows 10
- Windows 10, Установка локального веб-сервера (Apache, MySQL, PHP) в Wsl 1 и Wsl 2.
- Как запускать приложения Linux GUI в Windows 10.
- Как Выполнить команды Linux из Командной строки Windows 10.
- Проверьте погоду в Windows 10 с помощью Linux Bash
- Как запустить OpenSUSE 42.2 Leap или SUSE Linux Enterprise Server 12 в Windows 10
Table of Contents
Зачем нужен Windows Subsystem for Linux 2 (WSL2)? Самый частый ответ — простое использованое Linux программ в среде Windows. Docker самая распространенная причина для установки WSL2.
Что надо для WSL2
- убедиться что в BIOS включена виртуализация, ищите пункт меню:
- процессор Intel: VT-x, Intel Virtualization Technology, VTx
- процессор AMD: SVM Mode, AMD-V, Virtualization Technology
- версия Windows 11 или 10 не ниже версии 2004 (сборка 19041 ~декабрь 2019)
- права администратора
Всего несколько команд
Установим само ядро wsl и запустим дистрибутив Ubuntu для работы в консоли.
Открывайте PowerShell с правами Администратора. Самый простой вариант по мне -> WIN+X и выбрать Терминал Windows (Администратор).
Выполняйте команду:
По-умолчанию, установится WSL2 с GUI и Ubuntu . Установка займет определенное время, подождите.
Если ошибка 0x80072eff
В процессе, можете увидеть ошибку Во время установки произошла ошибка, но установка может быть продолжена. Компонент: 'Ядро WSL' код ошибки: 0x80072eff
.
А значит, все автоматически не сработало, не беда. Перезагружайтесь и снова запустите PowerShell от Администратора.
- Запустите обновление wsl
- Завершите работу wsl
- Запустите заново wsl
- Запустите установку Ubuntu (если надо более специфический дистр, посмотрите все варианты
wsl -l -o
)
Успешная установка Ubuntu
После установки, введите имя пользователя и пароль для Ubuntu, и вам будет доступна среда Linux.
Рекомендуется сделать одну команду, обновить список пакетов:
и наслаждаться
Как зайти в WSL консоль
- запускайте команду
wsl
. (например, в настройках среды разработки указать wsl это для терминала по-умолчанию) - можете вынести из Пуска, ярлык Ubuntu на панель задач.
- или поставить обновленный Microsoft Terminal, и в нем настроить при запуске сразу открывать консоль wsl, рекомендую.