Содержание
- Вариант 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 и может со временем измениться. В случае необходимости рекомендуем обратиться за справкой непосредственно к статье-первоисточнику.
Если вы хотите опробовать улучшенную WSL 2 (так же известную как Windows Subsystem for Linux, так же известную как слой совместимости для запуска Linux-приложений в операционной системе виндоуз) — мы обо всем расскажем. Мы собрали всю необходиму информацию. Давайте разбираться.
WSL 2 — это серьезное обновление по сравнению с исходной версией WSL, которую Microsoft представила в далеком 2017 году. WSL 2 — быстрее, универсальнее и использует настоящее ядро Linux. Будущие обновления ядра Linux будут выпускаться в том числе в виде обновлений программного обеспечения Windows 10 — что вызывает некоторый когнитивный диссонанс, если вдуматься!
Цель Microsoft при создании WSL 2 — повысить производительность. И как лучше всего это сделать? Конечно же добавить полную совместимость с системными вызовами, т. е. поставить во главу угла настоящее ядро Linux.
«Новая архитектура даст команде WSL прекрасную возможность предоставить пользователям те самый функции, которые и делают WSL прекраснейшим способом запуска среды Linux в Windows», — говорит технический специалист Microsoft.
Это безумие пока не ослабевает, поскольку Microsoft планирует разрешить пользователям запускать настольные приложения Linux в Windows 10 и запускать задачи с интенсивным использованием графического процессора. Это также позволит установить WSL с помощью всего одной команды.
На данный момент, если только вы не опытный юзер инсайдерских сборок, WSL 2 – это тот инструмент, который не требует каких-то особых усилий для своей настройки и предоставляет в ваше полное распоряжение самую полную версию Linux непосредственно внутри Windows. По-моему, оно того стоит!
Требования
Для установки WSL 2 в Windows 10 вам понадобятся следующие вещи:
- Windows 10 мая 2020 г. (20.04), Windows 10 мая 2019 г. (19.03) или Windows 10 ноября 2019 г. (19.09)
- Компьютер с поддержкой виртуализации Hyper-V
Обновление Windows 10 за май 2020 года было выпущено в мае 2020 года (почувствуй себя капитаном очевидность), но не все устройства могут обновиться сразу. Чтобы узнать, доступно ли обновление Windows 10 May 2020 на вашем компьютере, перейдите в Настройки > Обновление и безопасность > Центр обновления Windows.
В августе Microsoft перенесла WSL 2 на старые версии Windows 10. Любой пользователь сборок 19.03 или 19.09 также может установить WSL 2, но сначала придется обновиться по вот этой ссылке Windows KB4566116.
Технически вы можете установить WSL 2 на «инсайдерскую» сборку Windows 10 build 18917 или новее. Я не слишком знаком с тем, как работает «инсайдерская» система сборки, поэтому просто имейте в виду, что остальная часть этого сообщения основана на использовании стабильной версии Windows.
Ваш компьютер также должен поддерживать виртуализацию Hyper-V для запуска WSL 2. Чтобы убедиться, вы можете проверить поддержку Hyper-V.
Для этого вам понадобиться нажмите Win + R и набрать в открывшемся диалоговом окошке команду msinfo32. Открывшийся список прокрутите до конца и найдите четыре пункта про Hiper V:
- расширения режима мониторинга виртуальной машины;
- расширения для преобразования адресов второго уровня;
- виртуализация включена во встроенном ПО;
- предотвращение выполнения данных;
Если все они имеют значение «Да», поздравляю, у вас все хорошо и ваша ось поддерживает технологию Hiper V.
Если же ваша машинка не соответствует обоим требованиям, штош, вы не сможете установить или включить WSL 2, но вы можете использовать WSL 1.
Процесс установки WSL 2 в Windows 10 таков:
- Включить WSL 2
- Включите «Платформу виртуальных машин»
- Установите WSL 2 по умолчанию
- Установите дистрибутив Linux
Я шаг за шагом пройду по каждому из этих пунктов с помощью приложения PowerShell, которое вам нужно запустить от имени администратора. PowerShell легко найти в меню «Пуск» Windows.
Примечание: WSL 1 можно установить и с помощью графического интерфейса, но гораздо быстрее использовать командную строку, но, поскольку WSL — это инструмент командной строки, имеет смысл и устанавливать его с помощью нее!
Шаг 1. Включите WSL
Независимо от того, какую версию WSL вы хотите использовать, вам сначала нужно включить ее. Для этого откройте инструмент PowerShell от имени администратора и выполните команду ниже. Будьте осторожны, чтобы не набрать и не пропустить какой-либо символ в команде:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Если по каким-то причинам вы хотите использовать т WSL 1 – переходите к пункту 4.
Шаг 2. Включите «Платформу виртуальных машин»
WSL 2 требует, чтобы была включена функция «Платформа виртуальных машин» в Windows 10. Она отделена от Hyper-V и предоставляет некоторые из наиболее интересных интеграций платформ, доступных в новой версии подсистемы Windows для Linux.
Чтобы включить платформу виртуальных машин в Windows 10 (20.04), откройте PowerShell от имени администратора и выполните команду:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Чтобы включить платформу виртуальных машин в Windows 10 (19.03, 19.09), откройте PowerShell от имени администратора и выполните:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
На этом этапе вам стоит перезагрузить систему, чтобы убедиться, что все компоненты встали как надо и все работает так как задумано.
Шаг 3. Установите WSL 2 по умолчанию
Откройте PowerShell от имени администратора и выполните эту команду, чтобы установить WSL 2 в качестве версии WSL по умолчанию:
wsl --set-default-version 2
Вы можете (в любое время) настроить дистрибутив для работы в режиме WSL 1, если вам нужно.
Шаг 4. Установите дистрибутив
С WSL и необходимой технологией виртуализации все, что вам остается сделать, это выбрать и установить дистрибутив Linux из Microsoft Store.
Доступно несколько различных дистрибутивов, включая OpenSUSE, Pengwin, Fedora Remix и Alpine Linux. Но моя личная рекомендация (естественно) — Ubuntu 20.04 LTS (хотя также доступны 18.04 LTS и 16.04 LTS).
Чтобы установить Ubuntu в Windows 10, откройте приложение Microsoft Store, найдите «Ubuntu 20.04» и нажмите кнопку «Получить»:
Ubuntu 20.04 LTS в магазине Microsoft Store
Пока вы находитесь в Microsoft Store, я настоятельно рекомендую вам также установить приложение Windows Terminal с открытым исходным кодом. Этот инструмент разработан, чтобы предоставить вам наилучшие возможности WSL:
Терминал Windows в Магазине Microsoft
5. Используйте WSL 2
Когда вы устанавливали Ubuntu (или другой дистрибутив Linux), в меню «Пуск» был добавлен ярлык. Используйте его, чтобы «открыть» Ubuntu (или любой другой дистрибутив, который вы выбрали). В первый раз, когда вы запустите дистрибутив, все будет казаться ужасно медленным. Все в порядке, это норма; дистрибутив должен распаковаться и распаковать все свое содержимое – заварите чайку, подождите, только не прерывайте процесс.
Вам также будет предложено установить имя пользователя и пароль для использования в дистрибутиве. По возможности выбирайте то, что вы не забудете.
Преобразование Ubuntu на WSL 1 в WSL 2
Если вы используете WSL 1, вы можете обновить существующую версию до WSL 2. Чтобы преобразовать существующий дистрибутив WSL 1 в WSL 2, выполните в PowerShell следующее команду:
wsl.exe --set-version Ubuntu 2
Только замените «Ubuntu» в вышеприведённой команде названием того дистрибутива, который вы запускаете при запуске WSL 1.
Расскажите в камментах не возникло ли у вас трудностей при установке и использовании WSL2 по инструкции из этого гайда.
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
Рекомендуем: Что необходимо знать о 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
Используем подсистему Linux (WSL) в Windows 10 для разработки сайтов
Я постоянно использую терминал для работы с git и автоматизации сборки проектов (вёрстка/фронтенд: компиляция scss, обработка изображений, и т.д.). Раньше, для решения такого рода задач было не так много хороших и комфортных решений, либо использовать Ubuntu (либо другой linux дистрибутив) и наслаждаться комфортной работой, либо использовать Windows и устанавливать на него множество программ которые частично, или медленнее чем в linux решают задачи разработки, такие как GitBash для использования консольных команд bash для работы с git, OpenServer для создания локального сервера на вашей рабочей машине. Но в 2016г. Microsoft сделали большой шаг для разработчиков, представив подсистему Linux в Windows 10, но тогда, в 2016 году, её использование разочаровало: нельзя было запускать из bash-терминала программы Windows, подсистема не определяла изменение файла, если изменение было сделано из Windows. Сейчас эти проблемы решены.
Что такое подсистема Windows для Linux?
Microsoft Windows 10 имеет новую дополнительную функцию, которая называется «Подсистема Windows для Linux (WSL)». Данная функция была добавлена в систему, начиная с обновления «Anniversary Update» и доступна она только в 64-битных редакциях Windows 10.
WSL представляет собой подсистему для ОС Windows 10, через которую можно запускать Linux приложения. В этой статье рассмотрим, как на данной подсистеме можно настроить веб-сервер LAMP (Apache, MySQL, PHP) для локальной разработки веб-проектов.
Включение подсистемы Windows для Linux
Для включения компоненты «Подсистема Windows для Linux» в Windows 10 необходимо выполнить следующие действия:
- Открыть «Панель управления» (Пуск -> Служебные -> Windows -> Панель управления).
- Открыть окно «Компоненты Windows» (пункт «Программы» в «Панели управления» -> Включение и отключение компонентов Windows).
- Установить галочку напротив опции «Подсистема Windows для Linux» и нажать «ОК»;
- Перезагрузить операционную систему.
Установка приложения «Ubuntu»
Для установки приложения «Ubuntu» заходим в магазин приложений Microsoft Store и в поле поиска вводим Ubuntu
и устанавливаем данное приложение.
Создание директории для веб-проекта
Все веб-проекты предлагаю создавать в директории C:projects
. Для примера создадим в ней новый тестовый проект с названием директории test
, конечный путь будет иметь следующий вид: C:projectstest
.
Установка программного обеспечения в ОС Ubuntu
Запускаем установленное приложение Ubuntu
.
Откроется терминал, в котором при первом запуске нужно будет ввести новое UNIX имя пользователя (username) и пароль (password).
Обновим локальный индекс apt пакетов в операционной системе Ubuntu:
Обновим установленное программное обеспечение:
Установим Apache:
Установим MySQL сервер:
sudo apt install mysql-server
Установим php и другие пакеты, необходимые для веб-разработки:
sudo apt install php libapache2-mod-php php-mysql php-xml php-curl
Включим модуль Mod rewrite в Apache:
Также есть официальная инструкция с microsoft.com, если вдруг какой-то момент покажется непонятным или не будет работать.
Изменение метода аутентификации MySQL пользователя root
Для изменения метода аутентификации MySQL пользователя root выполним следующие действия:
- Запустим службу mysql.
- Подключимся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер:
-
Нажмём на
Enter
, т.к. по умолчанию пользователь root, созданный при установке, не имеет пароля. -
Проверим метод аутентификации, который используется для пользователя root.
SELECT user, authentication_string, plugin, host FROM mysql.user WHERE user="root";
Если пользователь использует аутентификацию с помощью плагина auth_socket, то изменим эту настройку на использование пустого пароля. Для этого введём команду:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
Выполним команду FLUSH PRIVILEGES, которая применит внесённые изменения:
Создание базы данных
Создадим базу данных для веб-проекта test
. Для этого введем в командной строке MySQL введём следующую команду:
Если в базу данных test необходимо загрузить дамп некоторой базы, находящийся, например, в файле backup.sql, то можно воспользоваться следующими инструкциями:
use test;
source backup.sql;
Для завершения работы с командной строкой MySQL выйдем из неё:
Установка phpMyAdmin
Выполняем команду
sudo apt install phpmyadmin
Когда появится первое сообщение, нажмите пробел
, Tab
, а затем Enter
, чтобы выбрать Apache.
Выберите Да, когда вас попросят использовать dbconfig-common
для настройки базы данных.
Укажите пароль пользователя MySQL root
Выберите пароль для самого приложения phpMyAdmin
Включить необходимые расширения PHP:
sudo phpenmod mcrypt
sudo php en mod mbstring
Перезапустить Apache:
sudo service apache2 restart
Теперь вы можете получить доступ к phpMyAdmin по следующему URL: http://localhost/phpmyadmin/
Вы можете войти в систему, используя имя пользователя root
и пароль root
, настроенные во время установки MySQL.
Настройка виртуальных хостов в Apache
В Ubuntu файлы настроек виртуальных хостов Apache располагаются в /etc/apache2/sites-available/*.conf
. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf
. Данный файл будем использовать в качестве примера.
Создадим копию файла 000-default.conf
:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.conf
Отредактируем файл test.conf
, для этого можно воспользоваться, например, редактором nano
:
sudo nano /etc/apache2/sites-available/test.conf
В Ubuntu все локальные диски системы Windows находятся в директории /mnt
, тоесть, если наш проект находится в директории C:projectstest
, то в Ubuntu к ней нужно обращаться так /mnt/c/projects/test
.
Итоговое содержимое файла test.conf
:
<VirtualHost *:80>
ServerAdmin webmaster@test.loc
ServerName test.loc
ServerAlias www.test.loc
DocumentRoot /mnt/c/projects/test/
<Directory /mnt/c/projects/test/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Включим новый виртуальный хост с помощью утилиты a2ensite:
Перенаправление test.loc на локальный веб-сервер
Для того чтобы доменное имя test.loc
было связано с локальным веб-сервером необходимо открыть файл hosts
, расположенный по адресу C:WindowsSystem32driversetc
и добавить в него строчку:
Команды для запуска и остановки веб-сервера
Для запуска Apache и MySQL необходимо ввести следующие команды:
sudo service apache2 start
sudo service mysql start
Для остановки веб-сервера:
sudo service apache2 stop
sudo service mysql stop
Упрощение добавления нового проекта
Для того, чтобы каждый раз не выполнять множество этих команд, я написал bash скрипт для автоматизации данных задач, скрипт и инструкция по его установке находится в открытом доступе тут.
!! Не забудьте разкомментировать строки в скрипте для работы в Windows.
Разработка верстки сайта
Для разработки верстки сайта я пользуюсь npm
с gulp
и своим настроенным окружением для разработки фронтенд части сайта. Проект можете посмотреть здесь.
Замеченные баги в WSL
Работать с буфером обмена по умолчанию не комфортно (Ctrl + V
, Shift + Insert
не работают, приходится кликать (!!!) ПКМ по заголовку окна и выбирать Изменить → Вставить). Решается использованием терминала не самостоятельно, а внутри например Cmder или Terminus, я выбрал для себя Terminus.
После загрузки Windows иногда (было всего дважды) отказывается работать. Помогает перезагрузка (это же Windows).
Брандмауэр Windows по умолчанию не даёт зайти на запущенный внутри WSL сервер при запросе с другого устройства (запускаем сервер разработки на рабочем компе, открываем его страницы с телефона, находящегося в той же локальной сети). Как это лечить — не разобрался, приходится временно отключать брандмауэр.
Как заходить на сервер, запущенный в WSL, со сторонних устройств в одной локальной сети
Я пишу много html-страниц. В процессе работы у меня запущен локальный сервер, собирающий разметку, стили, javascript, спрайты и т.п. Бывает удобно запустить на основном компьютере сервер и зайти на него с помощью ноутбука, телефона, планшета (сервер доступен по IP, наподобие http://192.168.1.207:8080). Однако, встроенный в Windows 10 фаервол по умолчанию блокирует такие соединения.
Чтобы попасть на такой сервер, нужно добавить правило для брандмауэра:
- Найти с помощью поиска «Брандмауэр защитника Windows», открыть, нажать слева «Дополнительные параметры».
- В открывшемся окне Монитора брандмауэра выбрать (слева) «Правила для входящих…», нажать «Создать правило» (справа).
- Выбрать «Для порта», нажать «Далее».
- Выбрать «Определенные локальные порты», ввести номер порта (мой локальный сервер работает на порту 8080, его я и ввёл), нажать «Далее».
- Выбрать «Разрешить подключение», нажать «Далее», выбрать профили (я выбрал все), «Далее».
- Ввести какое-либо имя, нажать «Готово».
После этого получится зайти с любого устройства (в одной локальной сети) на запущенный в WSL на рабочем компьютере сервер.
Также можно использовать gulp
+ live-server
и всё будет работать без дополнительных настроек.
Как настроить полноценное окружение разработчика, привыкшего к 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.