Создание сайтов в Питере, СПБ. Подсистема Windows для Linux 2: полное руководство

В этом руководстве показано, как установить, управлять и использовать полную среду Linux на ПК с Windows 10 с WSL2. Вы будете работать с ядром Linux и запускать нативные приложения, одновременно беспрепятственно обмениваясь файлами и службами с редакторами кода и браузерами Windows.

Зачем использовать Linux?

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

серверы (Apache, NGINX, LiteSpeed ​​и др.)

языковые среды выполнения (PHP, Python, Node.js, Ruby и т. д.)

служебные библиотеки (обработка изображений, создание ZIP, почтовые программы и т. д.)

базы данных (MySQL, MongoDB, Redis и др.)

другие зависимости (Elastic Search, RabbitMQ, прокси и т. д.)

Некоторые из этих зависимостей могут быть доступны в Windows и macOS, но установка и поддержка идентичных версий затруднена. Они часто медленнее, и вы можете столкнуться с тонкими различиями, которые не станут очевидными до тех пор, пока вы не развернете их.

Некоторые разработчики устанавливают Linux на свои настольные компьютеры, но это может оказаться нецелесообразным, если вам регулярно требуется программное обеспечение, отличное от Linux, такое как продукты Microsoft или Adobe. Альтернативные варианты:

Используйте два ПК или двойную загрузку на одном устройстве. Переключение между системами может быть обременительным.

Запустите виртуальную машину Linux с помощью Hyper-V, VirtualBox, Parallels, WMware или Vagrant. Это требует значительных ресурсов ОС и достаточных знаний в области ИТ. Обмен файлами между системами может быть неудобным.

Запускайте веб-приложения в контейнерах Docker. Это еще одна тема для изучения, и сам Docker изначально работает в Linux. Обе версии Windows и macOS используют Linux под поверхностью.

Что такое подсистема Windows для Linux?

Подсистема Windows для Linux (WSL) позволяет разработчикам запускать среду Linux непосредственно в Windows 10. Это немодифицированная ОС, но она тесно интегрирована в Windows и не требует использования виртуальной машины.

WSL1 был новаторским и переводил системные вызовы Linux в эквиваленты Windows. Это могло быть медленным, и некоторые функции были недоступны. WSL2 использует технологию виртуальных машин Hyper-V, поэтому совместимость с Linux превосходна, а доступ к файлам до 20 раз быстрее, чем раньше.

Требования Windows 10

WSL2 совместим с выпусками Windows Home, Pro или Server, но не с Windows 10 S (хотя вы часто можете бесплатно перейти на выпуск Home).

Обновление Windows от мая 2020 года необходимо — это версия 2004 или выше. Выберите шестеренку «Настройки «в меню «Пуск», затем выберите «Система «, а затем «О программе». Спецификации Windows показаны внизу панели:

Спецификации Windows

Обновление медленно развертывается с конца мая 2020 года. Если у вас версия ниже 2004, вы можете активировать обновление, нажав кнопку «Проверить наличие обновлений «в «Настройках «, а затем «Обновление и безопасность «.

Если версия 2004 по-прежнему недоступна, вы можете загрузить и установить ее вручную с сайта microsoft.com/software-download/windows10.

Однако имейте в виду, что некоторые ПК сообщают, что версия 2004 в настоящее время недоступна на панели Центра обновления Windows. Вы не сможете выполнить обновление, пока Microsoft не выпустит исправление для вашего устройства.

Требования к ПК

WSL2 (и Hyper-V) требуют, чтобы в BIOS была включена поддержка аппаратной виртуализации.

ВНИМАНИЕ: изменение настроек BIOS может привести к поломке вашего ПК! Будьте осторожны при внесении изменений. Обратитесь к справочным страницам вашего производителя или поищите онлайн-консультации по вашей конкретной марке и модели.

Аппаратная виртуализация будет активна на большинстве устройств, но вы можете проверить это, перезагрузив компьютер и открыв панели BIOS — обычно нажав клавишу DEL, F2или F10при запуске системы. Ищите технологию виртуализации, VTx или подобные варианты. Убедитесь, что они включены, сохраните и перезагрузите устройство.

Наконец, убедитесь, что на вашем C: диске есть как минимум 1 ГБ свободного места на диске — в идеале больше. Вы можете освободить место в меню «Настройки «, «Система», «Хранилище «или с помощью инструмента очистки диска в инструментах администрирования Windows.

На момент написания WSL2 установит Linux на ваш C: диск, хотя после установки его можно переместить в другое место.

Включить WSL2

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

включить WSL2

Кроме того, вы можете выполнить следующие команды в терминале Windows Powershell, запущенном от имени администратора:

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

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

Перезагрузите Windows 10, затем включите WSL2 по умолчанию, введя следующую команду в Windows Powershell или командной строке:

wsl —set-default-version 2

Скачать Linux

Вы можете установить любое количество дистрибутивов Linux из Магазина Microsoft, доступ к которому осуществляется через меню «Пуск». Сюда входят Ubuntu, Debian, SUSE, Kali и Alpine. Введите «Linux» в поле поиска:

Магазин Майкрософт

Ubuntu — хороший выбор, если у вас нет особых требований. Последняя версия будет установлена, если вы щелкните значок Ubuntu, а затем кнопку «Получить «.

Загрузка может занять некоторое время в зависимости от скорости вашей сети.

Запустить Linux

После загрузки нажмите кнопку «Запустить «в приложении Microsoft Store или новый значок Ubuntu в меню «Пуск». Это завершит процесс установки и может занять несколько минут.

Примечание: при первом запуске дистрибутива WSL2 вы можете увидеть в терминале сообщение об обновлении ядра. Скопируйте ссылку в браузер, затем загрузите и установите обновление. Вам нужно будет снова запустить Ubuntu, чтобы продолжить установку.

Вам будет предложено ввести имя пользователя и пароль. Это учетные данные для администрирования Linux: они полностью отделены от вашего имени пользователя и пароля Windows (хотя выбор одних и тех же может быть практичным).

Linux в конечном итоге будет готов, и ваш терминал покажет содержимое, подобное этому:

Installing, this may take a few minutes...

Please create a default UNIX user account. The username does not need to match your Windows username.

For more information visit: https://aka.ms/wslusers

Enter new UNIX username: ******

New password:

Retype new password:

passwd: password updated successfully

Installation successful!

To run a command as administrator (user «root»), use «sudo ».

See «man sudo_root» for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 4.19.104-microsoft-standard x86_64)

* Documentation: https://help.ubuntu.com

* Management: https://landscape.canonical.com

* Support: https://ubuntu.com/advantage

System information as of Mon Jul 6 12:07:38 BST 2020

System load: 0.27 Processes: 8

Usage of /: 0.4% of 250.98GB Users logged in: 0

Memory usage: 0% IPv4 address for eth0: 172.21.232.173

Swap usage: 0%

0 updates can be installed immediately.

0 of these updates are security updates.

The list of available updates is more than a week old.

To check for new updates run: sudo apt update

Обновить Linux

Вероятно, будет несколько обновлений Linux. Чтобы обновить Ubuntu, введите следующие команды в терминале Linux:

sudo apt-get update

sudo apt-get upgrade

sudo apt-getdist-upgrade

sudo apt-get autoremove

Другие дистрибутивы Linux будут иметь аналогичный процесс, но обратитесь за помощью к документации.

Переключение между WSL1 и WSL2

Существующие дистрибутивы WSL1 можно преобразовать в WSL2. Ввод следующей команды в терминал Windows Powershell для отображения установленных дистрибутивов Linux и их версии WSL:

PS C: \> wsl —list —verbose

NAME STATE VERSION

* Ubuntu Running 1

(Звездочка * выделяет установку Linux по умолчанию.)

Чтобы переключиться Ubuntuна WSL2, введите:

wsl —set-version Ubuntu 2

Точно так же, чтобы вернуться к WSL1, введите:

wsl —set-version Ubuntu 1

Установите дистрибутив Linux по умолчанию

Если у вас установлено несколько дистрибутивов Linux, один из них должен быть установлен по умолчанию. Он будет использоваться при wslвводе в терминал Windows Powershell.

Чтобы установить дистрибутив по умолчанию, перечислите свои установки:

wsl —list

и установите значение по умолчанию с помощью:

wsl —setdefault

Пример Ubuntu: wsl —setdefault Ubuntu.

Запуск Linux от имени конкретного пользователя

Чтобы запустить дистрибутив по умолчанию от имени конкретного пользователя, введите следующую команду в терминале Windows Powershell:

wsl —user

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

Переместите образ диска Linux

Образ диска Linux установлен на вашем C: диске. При желании вы можете переместить его на другой диск, чтобы освободить место. Следующие инструкции предполагают, что вы переместите его в D: \wsl.

В терминале Windows Powershell (не в терминале Ubuntu) введите, wsl —listчтобы просмотреть дистрибутивы Linux, затем экспортируйте один из них по имени в файл резервной копии.tar, например D: \backup\ubuntu.tar:

mkdir D: \backup

wsl —export Ubuntu D: \backup\ubuntu.tar

Отмените регистрацию того же дистрибутива, чтобы удалить его с C: диска:

wsl —unregister Ubuntu

Введите wsl —list, чтобы убедиться, что дистрибутив был удален.

Импортируйте резервную копию в новый дистрибутив WSL2 в другом месте, например D: \wsl:

mkdir D: \wsl

wsl —import Ubuntu D: \wsl\ D: \backup\ubuntu.tar

Убедитесь, что он был успешно создан, войдя wsl —listи запустив приложение Ubuntu из меню «Пуск».

К сожалению, теперь Ubuntu будет использовать rootего как пользователя по умолчанию. Чтобы использовать свою учетную запись, введите следующую команду:

ubuntu config —default-user

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

Предполагая, что все прошло хорошо, вы можете безопасно удалить файл резервной копии (D: \backup\ubuntu.tar).

Установить Windows-терминал

Чтобы запустить терминал Linux, вы можете использовать значок Ubuntu, ввести wslили bashв Powershell или использовать любую стороннюю опцию, такую ​​как Cmder, ConEmu или Hyper. Профили могут быть определены для запуска%windir%\system32\bash.exe ~.

Другой вариант — Windows Terminal, который также доступен в Microsoft Store или его репозитории по адресу github.com/microsoft/terminal/.

Терминал Windows

Терминал Windows автоматически добавит ваши дистрибутивы WSL2 Linux и предложит широкий набор настраиваемых параметров, включая вкладки, разделенные представления, темы, прозрачность и привязки клавиш.

Параметры определяются в settings.jsonфайле, доступ к которому осуществляется из меню «НастройкиCtrl «или +, (запятая). Значения по умолчанию и настройки темы можно просмотреть в defaults.json, доступ к которому можно получить, удерживая нажатой Altкнопку и щелкая меню «Настройки «.

Если вам нужно полное подробное руководство по установке, настройке и использованию Windows Terminal, мы вам поможем.

➤ Полное руководство по терминалу Windows

Доступ к файлам Linux из Windows

Доступ к файлам Linux можно получить по сетевому пути \\wsl$\. Это можно ввести в адресной строке Проводника или в любом диалоговом окне открытия файла.

В списке перечислены ваши установленные дистрибутивы Linux, поэтому вы можете получить доступ к корневому каталогу Ubuntu по адресу \\wsl$\Ubuntu. Ваши личные файлы Linux обычно хранятся по адресу:

\\wsl$\Ubuntu\home\

Лучше всего использовать это как начальную папку в Терминале Windows. Откройте Настройки и добавьте следующую строку конфигурации в профиль Ubuntu:

«startingDirectory»: «//wsl$/Ubuntu/home//»,

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

Подключить сетевой диск

Вы можете подключить сетевой диск \\wsl$\Ubuntu\, открыв его \\wsl$\в проводнике, щелкнув правой кнопкой мыши папку Ubuntu и выбрав Подключить сетевой диск...

подключить линуксовый диск

К сожалению, в настоящее время невозможно отобразить более глубокие подкаталоги. Вы также можете столкнуться с проблемами с подключенным диском в некоторых приложениях.

Доступ к файлам Windows из Linux

Диски Windows монтируются в /mnt/каталог Linux. Например, ваша личная папка «Пользователи» C: \Users\доступна по адресу:

/mnt/c/Users/

Для простоты доступа вы можете создать символическую ссылку на любую папку Windows из терминала Ubuntu, например, для C: \projects\code\:

cd ~

ln -s /mnt/c/projects/code/

Папка codeпоявится в вашем домашнем каталоге. Перейдите к нему с помощью cd ~/code, и вы действительно окажетесь в /mnt/c/projects/code/, который отображается непосредственно в C: \projects\code\.

Доступ к файлам Windows из Linux значительно медленнее, чем при использовании родной файловой системы Linux. По возможности создавайте проекты в файловом пространстве Linux, обычно в вашей домашней папке (/home//или ~).

Запуск команд Linux из Windows

Любую команду оболочки Linux (bash) можно запустить из Windows Powershell или терминала командной строки, используя wsl:

wsl <linux-command>

Например: wsl ls -laперечисляет полное содержимое и сведения о файлах в папке Windows.

Запуск приложений Windows из Linux

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

explorer.exe.

или отредактируйте.bashrcв блокноте:

notepad.exe ~/.bashrc

или откройте конкретный каталог проекта в VS Code:

code ~/projects/mywebsite

Установка приложений

Всегда помните, что вы используете две операционные системы. Они могут быть сильно интегрированы, но бывают ситуации, когда вы хотите, чтобы приложение было установлено в одном или в обоих.

Может оказаться практичным использовать Git из Windows или Linux. Редакция Windows устанавливается путем загрузки исполняемого файла, но Git на Ubuntu устанавливается с помощью:

sudo apt-get update

sudo apt-get install git-all

Точно так же вы можете протестировать приложения Node.js как в Windows, так и в Linux. Опять же, в Windows есть установщик, но Node.js 14.x устанавливается в Ubuntu с помощью команд:

sudo apt-get install build-essential

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash —

sudo apt-get install -y nodejs

git, nodeи npmтеперь команды будут работать в любой среде.

Установка Докера

Единственным исключением из правила «установить дважды» является Docker!

Docker запускает приложения в изолированных контейнерах Linux, которые концептуально аналогичны облегченным виртуальным машинам с ОС, одним приложением и его зависимостями. Использование Docker для веб-разработки обеспечивает согласованную среду, которую легко установить и которая работает на любом устройстве.

Docker Desktop для Windows полностью поддерживает WSL2:

нет необходимости использовать Hyper-V, поэтому Docker можно установить на Windows Home

Docker запускается и работает значительно быстрее, если настроен на использование WSL2.

установка Docker Desktop в Windows позволяет работать как в Windows, так dockerи docker-composeв Linux.

Docker Desktop предлагает вам использовать WSL2 при первом запуске. Кроме того, вы можете выбрать «Настройки «в меню значков на панели задач Docker, затем выбрать вкладку «Общие «, установить флажок «Использовать механизм на основе WSL 2 «и нажать «Применить и перезапустить «.

Движок Docker WSL2

Docker будет использовать дистрибутив Linux по умолчанию, но вы также можете включить его в других установленных дистрибутивах на панели интеграции WSL в разделе «Настройки «, затем «Ресурсы «.

Запуск приложений Apache и PHP с помощью Docker

Можно установить веб-зависимости, такие как Apache и PHP, непосредственно в вашей среде WSL2 Linux. Однако Docker безопаснее, быстрее и более настраиваемый: он позволяет запускать разные версии PHP на одном устройстве одновременно.

В этом примере вы создадите небольшой файл PHP и запустите его, используя последнюю версию PHP 7.4 в контейнере Docker. Убедитесь, что вы установили Docker Desktop для Windows и включили режим WSL2, а затем создайте папку в среде Linux с index.phpфайлом. Например:

mkdir ~/php

cd ~/php

touch index.php

Отредактируйте index.php, возможно, используя Блокнот или VS Code, как показано выше. Добавьте следующий контент, который выводит информацию о статусе PHP:

<? php

phpinfo () ;

Выполните следующую dockerкоманду, чтобы запустить веб-сервер Apache с поддержкой PHP 7.4 в контейнере, который монтирует файлы из каталога хоста /var/www/htmlв контейнер:

docker run \

-it —rm -p 8080:80 —name php \

-v «$PWD»: /var/www/html \

php:7.4-apache

Примечание: эта команда также будет работать в Windows, хотя ссылку на $PWDнужно будет заменить полным путем к файлу в нотации Linux, например /c/php/.

Откройте https: //localhost:8080/в любом веб-браузере Windows, чтобы просмотреть вывод, созданный вашим файлом PHP:

Контейнер Docker с Apache и PHP

Чтобы закончить, нажмите Ctrl+ Cв терминале Docker, чтобы остановить и удалить контейнер.

WSL2 иlocalhost

Доступ к приложениям, работающим в контейнерах Windows, WSL2 Linux и Docker, всегда осуществляется из localhostили 127.0.0.1.

В приведенном выше примере PHP показан порт 8080, который был сопоставлен с портом 80в контейнере. Точно так же, если у вас установлен Node.js в Linux, вы можете cdперейти в любой каталог и запустить статический файловый сервер:

npx small-static-server

Откройте http: //localhost:8888/в браузере, чтобы просмотреть файлы в этом каталоге (index.htmlвозвращается по умолчанию).

Имейте в виду, что порты, доступные в одной ОС, могут быть недоступны в другой. Порт 80 часто зарезервирован приложением Skype для Windows 10, и его нельзя изменить (хотя классическая версия Desktop позволяет это сделать).

SSL-сертификаты, которые являются либо самозаверяющими, либо локально доверенными с помощью таких инструментов, как mkcert, могут взаимозаменяемо использоваться как в средах Windows, так и в Linux.

Интеграция с VS Code WSL2

Оболочку WSL2 можно выбрать в качестве терминала VS Code по умолчанию, нажав Ctrl+ Shift+ Pи набрав/выбрав Terminal: Select Default Shell, затем выбрав WSL Bash:

Терминальная оболочка VS Code по умолчанию

Как и другие приложения, VS Code может напрямую обращаться к файлам Linux \\wsl$\и отладчикам, работающим в localhost. Нет необходимости в дополнительных расширениях, но следующие параметры упрощают управление файлами Linux и Docker:

Remote — WSL: открыть папки WSL2 Linux

Remote — Containers: открыть или подключиться к работающему контейнеру Docker.

Пакет удаленной разработки: включает оба вышеперечисленных расширения, а также Remote — SSH для подключения к удаленным серверам.

После установки Remote — WSL вы можете перейти в любой каталог Linux и запустить экземпляр VS Code, подключенный к WSL:

cd ~/myproject

code.

Либо щелкните значок удаленного окна в левом нижнем углу приложения, затем выберите вариант подключения:

Значок удаленного окна VS Code

Или используйте новый значок Remote Explorer на панели действий. Это позволяет вам выбрать тип цели из раскрывающегося списка и соответствующим образом подключиться:

Удаленный обозреватель VS Code

Удаленный экземпляр VS Code имеет отдельный набор расширений и настроек для использования в Linux. Это позволяет выполнять отладку кода WSL2 и практично, когда в любой из ОС установлено сочетание языковых сред выполнения, расширение недоступно в одной системе или для него требуются разные настройки ОС.

Панель «Расширения «позволяет включать и настраивать расширения в удаленном экземпляре:

Расширения кода VS

Настройки хранятся в вашем ~/.vscode-serverкаталоге Linux.

Резюме

WSL2 произведет революцию в вашей веб-разработке. Это позволяет легко писать код с помощью инструментов Windows, а затем запускать его в среде Linux. Хотя раньше это было возможно с виртуальными машинами и общими папками Samba, WSL2 предлагает более простой, быстрый и высокоинтегрированный опыт.

Делитесь нашими материалами с друзьями!

 

 

Заказать разработку сайта