Windows Subsystem for Linux (сокращённо WSL) представляет собой слой совместимости для выполнения бинарных файлов Lunux (ELF) в среде операционной системы Windows 10 и Windows Server 2019.
WSL позволяет использовать множество программ, собранных под Linux и доступных в репозиториях дистрибутивов без пуска каких-либо виртуальных машин, что ускоряет процесс, имеет высокий уровень интеграции с основной системой, и требует намного меньше системных ресурсов по сравнению с виртуализацией.
Однако важно понимать, что это всего лишь слой совместимости для запуска Linux программ, а не полноценное Linux ядро, поэтому ожидать полноценной Linux системы без виртуальный машины, и поддержки всех программ и файлов конфигурации (особенно требующий низкоуровневый доступ) не следует.
WHL пока эффективнее всего применять для небольших высокоуровневых консольных утилит и для получения привычного консольного bash-окружения.
Для начала нам надо активировать компонент Windows Subsystem for Linux так как по умолчанию он выключен. Есть два способа:
1. Включение Windows Subsystem for Linux через Windows Power Shell
Необходимо запустить Windows Power Shell с правами администратора и выполнить команду:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
После этого может потребуется перезагрузка компьютера (если компонент уже не был включён).
2. Включение Windows Subsystem for Linux через "компоненты Windows"
Заходим в классическую панель управления => Программы и компоненты => Слева "Включение или отключение компонентов Windows".
Выбираем "Подсистема Windows для Linux, и нажимаем OK. Потребуется перезагрузка компьютера.
Установка дистрибутива Linux
Проще всего выбрать и установить необходимый вам дистрибутив, как бы это странно не звучало, в магазине Microsoft (находим и заходим в приложение Microsoft Store).
По запросу "Linux" в поиске можно найти одни из наиболее популярных дистрибутивов:
Для примера выберем и установим "свежий" Ubuntu 18.04 LTS:
Теперь в меню приложений мы увидим установленный дистрибутив Ubuntu 18.04.
Запустим приложение и проведём начальную настройку:
При первом запуске нас просят ввести свой имя пользователя (которое будет использоваться в Linux системе), а создать пароль к создаваемой учётной записи:
В версии 18.04 при открытии приложения по умолчанию открывается терминал от имени root. Для входа под созданным пользователем можно использовать команду:
su -l subsanek
, где "subsanek" - имя созданного вами при инициализации пользователя.Корневая директория дистрибутива Ubuntu 18.04 у меня расположились по такому "Windows адресу":
C:\Users\Subsanek\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
, где "Subsanek" - ваше имя пользователя В Windows.А для перехода к файлам Windows нам нужно заглянуть в каталог mnt, где найдём все подключенные диски и сможем в них перейти:
Вы можете без проблем доустановить необходимые пакеты из репозитория Ubuntu с помощью привычного apt, и пользоваться ими, как если бы вы находились в реальном Linux.
С "лёгкими" и консольными приложениями, как правило, проблем никаких нет:
Запуск графических приложения с помощью Windows X-сервера Xming
С помощью Windows Subsystem for Linux можно запускать не только консольные, но и графические приложения, используя X-сервер на Windows.
Для начала нам нужно скачать и установить X-сервер Xming на Windows машину (Xming является по сути портом X-сервера для Windows). Скачать сервер Xming можно c официальной страницы.
После установки мы получаем утилиты XLaunch для запуск задаём конфигурацию сервера:
Запускаем XLaunch и задаём следующие настройки:
Теперь прописываем в терминале (Ubutntu) переменную окружения DISPLAY:
DISPLAY=localhost:0; export DISPLAY
Теперь вы сможете запускать не только консольные, но и графические приложения, используя Xming в качестве X сервера на Windows машине (хотя здесь и X клиенты также по сути на Windows работают, ведь WSL, как говорилось ранее, собственного Linux-ядра не имеет, а лишь эмулирует).Примеры запуска графических приложений, используя WSL и Xming:
на мой взгляд - ставить подобные вещи в продакшен-сервер - не совсем хорошая идея.