Подсистема линукс в windows 10 где находится

Процедура установки WSL2 в Windows 10 отличается в зависимости от используемой версии системы. Но в любом случае нужно будет установить дистрибутив Linux.

Содержание

  • Вариант 1: Установка в полуавтоматическом режиме
    • Шаг 1: Выбор доступных дистрибутивов Linux
    • Шаг 2: Запуск инсталляции
  • Вариант 2: Установка в ручном режиме
    • Шаг 1: Предварительная настройка системы
    • Шаг 2: Загрузка и настройка ядра WSL2
    • Шаг 3: Выбор и инсталляция дистрибутива Linux
  • Вопросы и ответы

установка wsl2 в windows 10

Вариант 1: Установка в полуавтоматическом режиме

Установка WSL в операционной системе Windows осуществляется посредством выполнения специальных команд в консоли. Для этого потребуется предварительно определиться с дистрибутивом Linux, а затем запустить процесс его инсталляции.

Важно! Приведенная ниже инструкция может быть выполнена только при условии использования Windows 10 версии 2004 (19041) и более новых. Узнать эту информацию можно в свойствах системы. Этой теме на нашем сайте посвящена отдельная статья, при необходимости ознакомьтесь с ней, перейдя по ссылке ниже.

Подробнее: Как узнать версию Windows 10

установка wsl2 в windows 10_01

Шаг 1: Выбор доступных дистрибутивов Linux

Каждому пользователю актуальной версии Windows 10 предоставляется возможность вручную выбрать дистрибутив Linux, который будет использоваться в WSL2. Для просмотра списка доступных систем необходимо ввести специальную команду в консоль, поэтому предварительно запустите «Командную строку» с правами администратора. Сделать это можно множеством способов, например посредством поискового запроса, как показано на изображении ниже.

установка wsl2 в windows 10_02

Читайте также: Как открыть «Командную строку» от имени администратора в Windows 10

Примечание! По умолчанию всегда выбрана последняя версия дистрибутива Ubuntu. Если именно его вы и хотите установить, то пропустите этот шаг и переходите сразу ко второму.

После того как окно консоли будет открыто, впишите или вставьте в него одну из нижеприведенных команд, после чего нажмите клавишу Enter:

wsl --list --online или wsl -l -o

установка wsl2 в windows 10_03

В результатах выдачи будет приведен список всех доступных дистрибутивов Linux. На этом этапе вам необходимо запомнить или скопировать в буфер обмена название, которое находится в столбце «NAME».

Обратите внимание! Если в списке доступных дистрибутивов нет желаемого, его можно импортировать в WSL2 посредством файла TAR или APPX. При необходимости есть возможность создать собственный дистрибутив на базе ядра Linux. Эти процессы описываются в официальной документации Microsoft, при необходимости ознакомиться с ними можно, воспользовавшись ссылками ниже.

Импорт любого дистрибутива Linux для использования с WSL
Создание пользовательского дистрибутива Linux для WSL

Lumpics.ru

Шаг 2: Запуск инсталляции

После того как версия дистрибутива Linux для WSL2 была выбрана, можно переходить непосредственно к ее инсталляции. Делается это тоже в «Командной строке», для чего нужно воспользоваться приведенной ниже командой. Не забудьте после ее ввода нажать клавишу Enter.

wsl --install -d <НазваниеДистрибутива>

установка wsl2 в windows 10_04

Примечание! Если вы хотите установить версию по умолчанию, тогда нет необходимости прописывать название дистрибутива вручную, можно воспользоваться следующей командой:

wsl —install

Сразу после этого начнется процесс установки платформы виртуальной машины, затем инсталлируется «Подсистема Windows для Linux», а в завершение будет выполнена загрузка ядра WSL2.

установка wsl2 в windows 10_05

После всех этих процедур можно будет воспользоваться WSL2 для вызова подсистемы Linux. Для этого достаточно будет запустить установленный дистрибутив через меню «Пуск».

Вариант 2: Установка в ручном режиме

Если версия вашей операционной системы Windows 10 ниже 2004 (19041), тогда воспользоваться вышеприведенной инструкцией не получится и большинство действий придется выполнять вручную.

Шаг 1: Предварительная настройка системы

Первостепенно необходимо проверить, поддерживает ли установленная версия операционной системы обновление WSL до второй версии. Сделать это можно посредством вызова окна «Windows: сведения». Для этого нажмите сочетание горячих клавиш Win + R, впишите в поле запроса команду winver и нажмите клавишу Enter.

установка wsl2 в windows 10_06

Появится соответствующее окно, в котором будет указана версия операционной системы и ее сборка. Убедитесь, что она выше 1903 (18362). Если это так, можете продолжить выполнение этой инструкции, в противном случае попробуйте прежде обновить Windows 10 до актуальной версии.

установка wsl2 в windows 10_07

Читайте также: Как обновить Windows 10 до последней версии

Важно! Если ваш компьютер работает на процессоре с архитектурой ARM64, этот способ установки WSL2 не подойдет. Обновитесь до последней версии Windows 10 и воспользуйтесь ранее предоставляемой инструкцией.

После того как вы удостоверились в актуальности версии операционной системы, необходимо произвести ее предварительную настройку, а именно — включить «Подсистему Windows для Linux» и компонент виртуальных машин. Делается это в оболочке PowerShell, поэтому предварительно запустите ее с правами администратора. Проще всего сделать это через контекстное меню кнопки «Пуск», как показано на изображении ниже. Но это не единственный способ.

Подробнее: Как открыть PowerShell в Windows 10

установка wsl2 в windows 10_08

Теперь необходимо включить компонент «Подсистема Windows для Linux». Для этого скопируйте и вставьте в окно консоли PowerShell следующую команду, после чего нажмите Enter:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

установка wsl2 в windows 10_09

Ожидайте завершения процедуры, когда на экране появится приглашение к вводу новой команды. После этого включите компонент виртуальных машин. Это делается посредством нижепредставленной команды:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

установка wsl2 в windows 10_10

Важно! Если результатом ее выполнения является ошибка, потребуется предварительно включить виртуализацию. Делается это через BIOS, но сначала следует проверить статус этой функции в операционной системе. На нашем сайте есть отдельные статьи, посвященные этой теме.

Подробнее:
Как проверить, включена ли виртуализация в Windows 10
Как включить виртуализацию в BIOS

установка wsl2 в windows 10_11

После того как компонент виртуальных машин будет установлен, потребуется перезагрузить компьютер.

Шаг 2: Загрузка и настройка ядра WSL2

Следующим шагом будет загрузка и установка ядра второй версии WSL, но изначально нужно определить архитектуру процессора, на которой работает операционная система. Для этого вызовите окно «Командной строки», в котором выполните следующую команду:

systeminfo | find "Тип системы"

установка wsl2 в windows 10_12

В результатах выдачи будет указана архитектура процессора. Если упоминается x64, скачайте пакет обновления ядра Linux в WSL2 для 64-разрядных компьютеров на базе процессора x86. Если в результатах выдачи есть упоминание ARM64, загрузите пакет обновлений по этой ссылке. Сохраните файл в любое удобное место, после чего запустите его, дважды кликнув по названию. Далее следуйте инструкции инсталлятора, пока не будет произведена установка.

установка wsl2 в windows 10_13

Теперь необходимо выбрать WSL2 версией по умолчанию, чтобы при установке дистрибутивов Linux они инсталлировались в этом окружении. Для этого достаточно в окне PowerShell выполнить представленную ниже команду:

wsl --set-default-version 2

установка wsl2 в windows 10_14

Шаг 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. Находясь на странице нужного дистрибутива, щелкните по кнопке «Получить», расположенной рядом с его названием.

установка wsl2 в windows 10_15

Дождитесь завершения загрузки, после чего кликните по появившейся кнопке «Открыть». Запустится окно консоли, в котором будет предложено подождать несколько минут, пока идет распаковка дистрибутива. В дальнейшем процедура инициализации ядра Linux будет занимать считанные секунды.

установка wsl2 в windows 10_16

Примечание! Представленный выше список дистрибутивов взят с официального сайта Microsoft и может со временем измениться. В случае необходимости рекомендуем обратиться за справкой непосредственно к статье-первоисточнику.

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), нажать кнопку ОК, и перезагрузить компьютер.

установка Windows Subsystem for LInux 2 версия в windows 10

Вы можете включить компоненты 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, установить его. По завершении увидите картинку

windows subsyste for linux update setup

Чтобы сделать 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, нажмите кнопку Получить.

образы linux для wsl в microsoft store

Если у вас отключен 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

wsl --list –-verbose список доступных образов linux

Если у вашей среды 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

запуск команд linux в windows
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”

команды linux

Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in

запуск команд linux в windows 10 subsystem for linux

Ещё один пример взаимосвязи 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 показывается список файлов с обеих ОС.

Midnight Commander в windows 10 wsl2

Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:

ip addr | grep eth0

запуск команд linux из windows

В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).

VcXsrv Windows X Server

С помощью пакетного менеджера 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

запуск браузера firefox через WSL 2 в Windows 10

запуск графического редактора gedit в WSL

Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:

wsl --list –all

чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:

wsl --shutdown

Единственная корневая файловая система находилась здесь до обновления Windows 10 Fall Creators (выпущенного в октябре 2017 года):

%USERPROFILE%AppDataLocalLxssrootfs

Например, C:UsersVigoAppDataLocalLxssrootfs

Другие точки монтирования расположены на один уровень выше в каталоге lxss . Например, ваш собственный home каталог в Linux будет находиться в папке %USERPROFILE%AppDataLocalLxsshome .

Начиная с обновления Fall Creators, можно установить более одного экземпляра Linux и запустить их параллельно. Существующий экземпляр (он же устаревший) останется в своем каталоге, но новые созданные экземпляры находятся в:

%USERPROFILE%AppDataLocalPackages<distribution_specific_name>_<random_string>LocalStaterootfs

Например, моя установка Ubuntu 18.04 находится под

CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

каталог.

Предупреждение: не создавайте, не изменяйте и не удаляйте файлы, расположенные под конкретным деревом lxss или дистрибутива, из Windows.

Изучение и чтение файлов — единственная безобидная операция. См. Эту страницу блога Microsoft для деталей.

Обратите внимание, что начиная с Build 1903, существует альтернативный способ доступа к файлам работающего дистрибутива, в котором не обнаружены ранее упомянутые проблемы.

Просто используйте путь \wsl$<distribution_specific_name> и вы сможете создавать и изменять файлы. AppData по-прежнему не поддерживается для доступа к файлам в сборке 1903.

The single root file system was located here until Windows 10 Fall Creators update (released in Oct. 2017):

%LOCALAPPDATA%Lxssrootfs

For example, C:UsersVigoAppDataLocalLxssrootfs

Other mount points are located one level up in the lxss directory. For example, your own home directory within Linux will be in %LOCALAPPDATA%Lxsshome.

Starting from the Fall Creators update, it is possible to install more than one instance of Linux and run them in parallel. The existing instance (a.k.a. legacy) will stay in its directory but new instances created are located under:

%LOCALAPPDATA%Packages<distribution_specific_name>_<random_string>LocalStaterootfs

For example, my Ubuntu 18.04 installation is located under the

CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

directory.

Warning: Beware not to create, modify or delete files located under the lxss or distribution specific tree from Windows.

Exploring and reading files is the only harmless operation. See this Microsoft blog page for details.

Note that starting from Build 1903, there is an alternative way to access the files of a running distribution that doesn’t exhibit the previously mentioned issues.

Just use the path \wsl$<distribution_specific_name> and you’ll be able to create and modify files. The AppData is still not a supported way to access files with build 1903.

The single root file system was located here until Windows 10 Fall Creators update (released in Oct. 2017):

%LOCALAPPDATA%Lxssrootfs

For example, C:UsersVigoAppDataLocalLxssrootfs

Other mount points are located one level up in the lxss directory. For example, your own home directory within Linux will be in %LOCALAPPDATA%Lxsshome.

Starting from the Fall Creators update, it is possible to install more than one instance of Linux and run them in parallel. The existing instance (a.k.a. legacy) will stay in its directory but new instances created are located under:

%LOCALAPPDATA%Packages<distribution_specific_name>_<random_string>LocalStaterootfs

For example, my Ubuntu 18.04 installation is located under the

CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

directory.

Warning: Beware not to create, modify or delete files located under the lxss or distribution specific tree from Windows.

Exploring and reading files is the only harmless operation. See this Microsoft blog page for details.

Note that starting from Build 1903, there is an alternative way to access the files of a running distribution that doesn’t exhibit the previously mentioned issues.

Just use the path \wsl$<distribution_specific_name> and you’ll be able to create and modify files. The AppData is still not a supported way to access files with build 1903.

Используем подсистему 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 10 - Включение подсистемы Windows для Linux

  1. Открыть «Панель управления» (Пуск -> Служебные -> Windows -> Панель управления).
  2. Открыть окно «Компоненты Windows» (пункт «Программы» в «Панели управления» -> Включение и отключение компонентов Windows).
  3. Установить галочку напротив опции «Подсистема Windows для Linux» и нажать «ОК»;
  4. Перезагрузить операционную систему.

Установка приложения «Ubuntu»

Для установки приложения «Ubuntu» заходим в магазин приложений Microsoft Store и в поле поиска вводим Ubuntu и устанавливаем данное приложение.

Windows 10 - Установка приложения 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 выполним следующие действия:

  1. Запустим службу mysql.
  1. Подключимся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер:
  1. Нажмём на Enter, т.к. по умолчанию пользователь root, созданный при установке, не имеет пароля.

  2. Проверим метод аутентификации, который используется для пользователя 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 фаервол по умолчанию блокирует такие соединения.

Чтобы попасть на такой сервер, нужно добавить правило для брандмауэра:

  1. Найти с помощью поиска «Брандмауэр защитника Windows», открыть, нажать слева «Дополнительные параметры».
  2. В открывшемся окне Монитора брандмауэра выбрать (слева) «Правила для входящих…», нажать «Создать правило» (справа).
  3. Выбрать «Для порта», нажать «Далее».
  4. Выбрать «Определенные локальные порты», ввести номер порта (мой локальный сервер работает на порту 8080, его я и ввёл), нажать «Далее».
  5. Выбрать «Разрешить подключение», нажать «Далее», выбрать профили (я выбрал все), «Далее».
  6. Ввести какое-либо имя, нажать «Готово».

После этого получится зайти с любого устройства (в одной локальной сети) на запущенный в WSL на рабочем компьютере сервер.

Также можно использовать gulp + live-server и всё будет работать без дополнительных настроек.

Сайт KV.BY опубликовал статью о подсистеме Windows Subsystem for Linux (WSL), предназначенной для запуска Linux-программ в ОС Windows 10. Упор в статье сделан на последнюю версию этой подсистемы WSL2.

Windows – это Linux

Как говорили древние греки, всё меняется и ничто не остаётся на месте. Многие ещё помнят те времена, когда операционная система GNU/Linux была для «Майкрософт» чем-то вроде красной тряпки для быка. Бывший руководитель рэдмондского гиганта Стив Балмер называл всё, что связано с детищем Линуса Торвальдса, не иначе как «раковой опухолью». Однако прошло не так уж и много времени после таких заявлений, и вот уже как три года корпорация «Майкрософт» является платиновым участником консорциума Linux Foundation – организации, занимающейся развитием и стандартизацией ядра Linux.

Мало того, в операционной системе Windows 10 появилась специальная программная подсистема Windows Subsystem for Linux (WSL). Эта подсистема позволяет в Windows запускать программы GNU/Linux в двоичном исполняемом формате ELF-64. В результате пользователям десятых «Форточек» становятся доступно программное обеспечение Linux-дистрибутивов, начиная со скриптов Bash и заканчивая службами наподобие Docer.

Windows Subsystem for Linux
Windows Subsystem for Linux

Поводом для произошедших перемен в политике корпорации, без сомнения, стала популярность мобильной операционной системы Android, основанной на ядре Linux. Но причина, по которой в Рэдмонде произошёл поворот в сторону Linux-сообщества, лежит не только в области мобильных операционных систем.

«Developers, developers, developers!»

Существует два способа запускать Linux-приложения в Windows. Первый способ предполагает перекомпиляцию Linux-программ в исполняемый формат exe-файлов. Благо большая часть программ Open Source является кроссплатформенной и свободно собирается под разные операционные системы. Примером первого способа можно назвать проекты Cygwin или MinGW – коллекции специально скомпилированных для Windows приложений UNIX.

Второй способ предполагает использование эмуляции и виртуализации, что позволяет запускать полноценный Linux-дистрибутив в специальной виртуальной среде. WSL – это и есть второй способ. Здесь используются как эмуляция ядра Linux, так и технологии виртуализации.

Но, прежде чем мы рассмотрим особенности второго способа, отметим, что в Windows 10 присутствует и первый способ. С недавнего времени тихо и незаметно в штатный состав «Десятки» входят три классические консольные UNIX-утилиты curl.exe, tar.exe, openssh.exe.

Утилиты curl.exe, tar.exe, openssh.exe в Windows 10
Утилиты curl.exe, tar.exe, openssh.exe в Windows 10

Выбор этих консольные утилит явно указывает на тот класс пользователей, ради которых «Майкрософт» и затеяла всю эту эпопею с запуском в «Форточках» программ Linux. Программы Curl, tar и openssh – популярные инструменты у веб-разработчиков. Именно для них и для веб-разработки создают в Рэдмонде подсистему Windows Subsystem for Linux.

Как правило, веб-разработчики используют для своей работы Windows. Однако их клиенты и заказчики в основном пользуются хостингом на Linux. И для веб-разработчики в среде Windows приходится использовать что-то вроде Denver и XAMP, или же запускать программы виртуализации VMware и VirtualBox, или же использовать на компьютере двойную загрузку с системами Linux. Или уже наметилась устойчивая тенденция для веб-разработки переходить на Mac OS, в которой имеется полноценное POSIX-ядро, позволяющее без лишних телодвижений запустить все консольные скрипты и программы, необходимых для современных веб-кодеров.

Поэтому основная цель WSL – удержать веб-разработчиков на Windows, предоставив им удобную и комфортную среду запуска всех консольных скриптов, программ и примеров с GitHub и StackOwerflow. (Кстати GitHub с недавних пор тоже под контролем Microsoft).

Главная особенность WSL

Технологиями виртуализации давно никого не удивишь. Если подсистема WSL основана на технологиях виртуализации, то возникает основной вопрос: чем Windows Subsystem for Linux лучше того же VirtualBox?

Преимущество WSL не только в том, что пользователю Windows 10 теперь не требуется устанавливать и настраивать отдельные программы для создания виртуальных машин, довольствуясь штатными средствами виртуализации. Основным достоинством WSL является очень тесная и бесшовная интеграция работы приложений Linux в системе Windows. WSL настолько глубоко интегрирует виртуальную среду выполнения Linux-программ в операционную систему Windows 10, что эти программы становятся мало отличимы от приложений Windows на уровне пользовательского интерфейса. Хотя эта бесшовность даётся не легко.

Ниже рассмотрим эту бесшовность и прозрачность более детально. Все инструкции в этой статье для работы с WSL актуальны для сборки Windows 10 18917 и более поздних версий. Проверить номер своей сборки Windows 10 можно командой «ver» в приложении «Командная строка».

Настройка WSL

Настраивать подсистему WSL практически не нужно. Виртуальная среда WSL в процессе работы настроится автоматически и незаметно для пользователя.

Единственное, нужно проверить включение компонентов «Подсистема Windows для Linux» и «Платформа виртуальной машины» через «Панель управления -> Программы и компоненты -> Включение или отключение компонента Windows».

Включение WSL
Включение WSL

WSL работает только в 64-разрядных версии Windows 10, начиная с редакции «Домашняя» для процессоров x64 и ARM. Подсистема не работает в безопасном S-режиме Windows 10.

Загрузка дистрибутива

Как известно программы для Linux распространяются в составе дистрибутивов, наиболее популярными из которых можно назвать Fedora, Debian, Ubuntu, OpenSUSE. Поэтому чтобы начать работу с WSL следует загрузить и установить базовый набор приложений какого-либо дистрибутива и затем штатным менеджером пакетов установить нужные программы.

Дистрибутивы Linux для WSL устанавливаются прямо из магазина приложений Windows Store так же, как и программы Windows. По поисковому запросу «linux» в магазине появится список дистрибутивов для выбора. На текущий момент в магазине представлено уже около дюжины дистрибутивов. Выбираем нужный дистрибутив, – например Ubuntu-18.04, – и нажимаем кнопку «Получить».

Ubuntu-18.04 в Windows Store
Ubuntu-18.04 в Windows Store

Загрузится около 200 мегабайт файлов для базовой системы. В главном меню «Пуск», в «плитках» и на рабочем столе наравне с иконками Windows-программ появится иконка Linux-дистрибутива.

Иконки дистрибутива Linux в Windows 10
Иконки дистрибутива Linux в Windows 10

Удаление дистрибутива происходит также как и удаление Windows-программ – через контекстное меню «плитки» дистрибутива в меню «Пуск».

Отметим, что в редакциях Windows 10 для предприятий, в которых нет Windows Store, дистрибутивы Linux для WSL можно скачать и установить посредством специальных команд Power Shell. В этой статье для краткости мы данный метод рассматривать не станем.

Первый запуск WSL

Подсистема WSL предназначена для запуска консольных программ Linux с интерфейсом командной строки. Для программ с графическим интерфейсом необходимо устанавливать дополнительное ПО, о чём будет сказано ниже.

При первом запуске установленного дистрибутив откроется приложение «Командная строка», в котором запустится командный интерпретатор установленного дистрибутива – обычно это bash. Будет предложено подождать одну или две минуты для завершения установки. На последнем этапе после завершения установки необходимо создать новую учетную запись пользователя Linux-системы, который будет использоваться по умолчанию подсистемой WSL, и задать пароль. После чего с установленной системой Linux можно работать.

Начальная инициализация WSL-дистрибутива
Начальная инициализация WSL-дистрибутива

Запустить установленную систему Linux можно в приложении «Командная строка» с помощью команд «bash.exe», «wsl.exe» или «<имя дистрибутива>.exe» (не во всех дистрибутивах работает). Самой продвинутой является команда «wsl.exe», так как с её помощью доступны все возможные операции с подсистемой WSL.

Список установленных дистрибутивов задаётся командой «wsl» с помощью опции «-l» или «—list»:

wsl -l
Пример вывода команды “wsl -l”
Пример вывода команды “wsl -l”

Установка дистрибутива по умолчанию, который будет запускаться командами «bash.exe», «wsl.exe» без параметров, происходит с помощью опций «-s» («—setdefault»):

wsl -s <название дистрибутива>

Если для дистрибутива задано несколько учётных записей, то для запуска от имени определенного пользователя имеются опции «-u» («—user»):

wsl -u <имя пользователя>

Запуск определенного дистрибутива по названию с помощью опций «-d» («—distribution»):

wsl -d <название дистрибутива>

WSL1 и WSL2

После установки и первого запуска любой системы обычно всегда делается обновление ПО. Например, для Ubuntu обновление делается командами:

sudo apt-get update & apt-get upgrade

В первых версиях WSL пользователи столкнулись с неприятным фактом, что это обновление происходило очень медленно. Операция замены пары сотен мегабайт могла затянуться на долгое время. Резкое снижение производительности было характерно также и для других приложений, требующих большого числа файловых операций – Git, Node.js и других.

Такая низкая скорость файловых операций объяснялась тем, что первая версия WSL использовала эмуляцию ядра Linux на уровне API Windows. Также подсистема WSL эмулировала метаданные файловой системы дистрибутива Linux.

На практике оказалось, что такая эмуляция не обеспечивает высокую скорость файловых операций для систем Linux. Поэтому, начиная со сборки Windows 10 18917, используется новая архитектура WSL2, которая основана на технологиях виртуализации Microsoft Hyper-V. Другими словами теперь для каждого установленного дистрибутива Linux подсистема WSL запускает отдельную легковесную виртуальную машину и отдельный виртуальный диск. При этом для этой виртуальной машины используется настоящее ядро Linux, а не эмуляция на уровне системных вызовов Windows. В результате для WSL2 удалось повысить производительность файловых операций по сравнению с WSL1 на порядок.

На текущий момент в Windows 10 присутствуют обе версии подсистемы – и WSL1, и WSL2. Рекомендуется использовать WSL2.

Чтобы проверить, какие версии WSL использует каждый дистрибутив, используйте для команды «wsl.exe» опции «-l -v» («—list —verbose»):

wsl -l -v
Пример вывода команды “wsl -l -v”
Пример вывода команды “wsl -l -v”

Установить WSL 2 для отдельного дистрибутива можно опцией «—set-version»:

wsl --set-version <название дистрибутива> 2

Чтобы задать WSL 2 по умолчанию для всех устанавливаемых в дальнейшем дистрибутивов Linux, используйте опцию «—set-default-version»:

wsl --set-default-version 2

Одиночное и смешанное выполнение программ

Самое важное и интересное в WSL – это одиночное и смешанное выполнение программ Linux из среды Windows и наоборот.

Чтобы выполнить какую-либо программу из установленного дистрибутива Linux, совсем не обязательно запускать терминальную сессию Linux. Можно просто передать имя Linux-программы в качестве аргумента для wsl.exe и она будет выполнена прямо в контексте командной строки Windows.

c:>wsl uname
Linux
c:>
Примеры одиночного выполнения Linux-программ
Примеры одиночного выполнения Linux-программ

При этом программа для Linux выполнится в том же каталоге, в котором находится интерпретатор «Командная строка», от имени пользователя WSL по умолчанию с правами вызывавшего её интерпретатора. То есть если «Командная строка» запущена с правами Администратора Windows, то и запущенная здесь программа для Linux будет иметь права Администратора.

Возможно и обратное – вызов двоичных файлов Windows из консоли Linux. Поэтому из командного интерпретатора Linux, например, набрав команду «notepad.exe» можно запустить «Блокнот», который будет запущен с правами активного пользователя Windows.

$ notepad.exe "C:WSLWSL.txt"
Запуск “Блокнота” из консоли Linux
Запуск “Блокнота” из консоли Linux

Мало того, можно объединять программы Linux и программы Windows через механизм конвейера pipe. То есть можно соединять выход Linux-программы с входом Windows-программы и наоборот.

Пример 1, cmd. Выход Windows-программы «dir» направляем на вход Linux-утилиты «grep»:

C:>dir | wsl grep "Windows"
28.10.2019  03:36    
          Windows
28.10.2019  03:41              Windows.old

Пример 2, bash. Выход Linux-программы «cat» направляем на вход Windows-утилиты «findstr»:

$ cat /etc/lsb-release | findstr.exe "DESCRIPTION"
 DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

Такая тесная интеграция программ Windows и Linux с помощью WSL позволяет, например, писать смешанные скрипты BASH и Power Shell. Или интегрировать инструменты Linux в средства разработки Windows.

Доступ к файлам

WSL предоставляет доступ из оболочки bash Linux ко всем дискам и всей файловой системе Windows. Локальные диски автоматически монтируются в каталог «/mnt». Например, диск «C:» монтируется как «/mnt/c».

USB-флэшки не монтируются автоматически в каталог «/mnt». Их нужно монтировать с помощью плагина drvfs. Например, монтирование флэш-диска H:

$ sudo mkdir /mnt/h
$ sudo mount -t drvfs h: /mnt/h

Файлы WSL-дистрибутивов Linux можно найти в папке «C:Usersимя_пользователяAppDataLocalPackages». Они будут находиться в папках с названиями вида «CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc». Если используется версия WSL1, то файлы Linux-системы там будут находиться как есть в прямом доступе из Windows. Но категорически не рекомендуется их трогать в обход WSL, так как Windows не обработает специфические метаданные этих файлов.

В случае версии WSL2 в папке дистрибутива будет расположен файл образа виртуального жёсткого диска. Если в командном интерпретаторе запустить команду «explorer.exe .» с точкой в качестве аргумента, то откроется «Обозреватель» Windows, в котором отобразится файловая система текущего дистрибутива Linux как сетевой ресурс вида «wsl$<название дистрибутива>».

WSL-диск как сетевой ресурс Windows
WSL-диск как сетевой ресурс Windows

Другими словами, передать приложению Windows какой-либо файл из WSL-дистрибутива можно по сетевому пути к этому файлу.

C:>notepad wsl$Ubuntu-18.04homemikWSL.txt

Сеть и сетевые приложения

Версия WSL1 использует IP-адрес Windows. Сетевой стек у подсистемы WSL1 общий с Windows. Сервер, поднятый в Linux, будет доступен на localhost в Windows и наоборот.

Если дистрибутив использует версию WSL2, то уже потребуется найти IP-адрес виртуальной машины, чтобы подключить дистрибутив по этому IP-адресу. Это можно сделать, выполнив в Linux-системе команду «ip addr» и через поиск строки «eth0» найти адрес по значению «inet».

$ ip addr | grep eth0
 5: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
     inet 172.18.14.6/20 brd 172.18.15.255 scope global eth0

Дальше можно в Linux запустить, для примера, http-сервер Python командой «python3 -m http.server» и обратиться к нему из браузера Windows по полученному IP.

Доступ к веб-серверу Python для WSL из Windows
Доступ к веб-серверу Python для WSL из Windows

WSL и программы с графическим интерфейсом

WSL — это средство, предназначенное для пользователей, которым требуется запускать программы командной строки Bash и Core Linux в Windows. WSL не имеет штатных средств для запуска приложений Linux с графическим интерфейсом GNOME, KDE и т. д.

Тем не менее, энтузиасты вполне успешно запускают графические программы в WSL, устанавливая и запуская сторонние порты X-сервера для Linux – например VcXsrv.

VcXsrv – X-сервер для Windows
VcXsrv – X-сервер для Windows

В сети Интернет немало инструкций по запуску в WSL графических Linux-программ. Большая часть этих инструкций написана для WSL1, но с появлением второй версии подсистемы они устарели. Ниже последовательность действий для настройки X-сервера VcXsrv для подсистемы WSL2.

  1. Находим в Сети, скачиваем и устанавливаем X-сервер VcXsrv.
  2. В WSL-дистрибутиве через пакетный менеджер устанавливаем какую-нибудь программу с графическим интерфейсом – например, Nautilus GNOME.
  3. В настройках брандмауэра Защитника Windows «Пуск > Параметры > Обновление и безопасность > Безопасность Windows > Брандмауэр и защита сети» отключаем брандмауэр для опции «Общедоступная сеть».
  4. В Linux находим IP-адрес сервера имен nameserver, прописанный в «/etc/reslv.conf».
$ cat /etc/resolv.conf
 This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
 [network]
 generateResolvConf = false
 nameserver 172.20.240.1
  1. Экспортируем переменную DISPLAY со значением nameserver из reslv.conf и номером экрана «0».
export DISPLAY=172.20.240.1:0
  1. Запускаем в Windows VcXsrv. Устанавливаем «0» для «Display number» и галочку для «Disable access control».
  2. В Linux из командной строки запускаем графическую программу.
WSL и программы Linux с графическим интерфейсом
WSL и программы Linux с графическим интерфейсом

Само собой, приведенный способ в запуска программ Linux с графическим интерфейсом в скором времени тоже устареет. Хотя бы потому, что подобный способ не соответствует главной задумке Windows Subsystem for Linux: использовать только штатные компоненты Windows и не требовать их сложной настройки.

Понравилась статья? Поделить с друзьями:
  • Подсистема для запуска unix приложений windows 7
  • Подсистема windows для linux не включается
  • Подсистема windows для linux как включить
  • Подсистема windows для linux windows 10 что это
  • Подождите при запуске windows 8 на ноутбуке