В этом руководстве показано, как установить, управлять и использовать полную среду 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 с помощью
Запускайте
Что такое подсистема Windows для Linux?
Подсистема Windows для Linux (WSL) позволяет разработчикам запускать среду Linux непосредственно в Windows 10. Это немодифицированная ОС, но она тесно интегрирована в Windows и не требует использования виртуальной машины.
WSL1 был новаторским и переводил системные вызовы Linux в эквиваленты Windows. Это могло быть медленным, и некоторые функции были недоступны. WSL2 использует технологию виртуальных машин
Требования Windows 10
WSL2 совместим с выпусками Windows Home, Pro или Server, но не с Windows 10 S (хотя вы часто можете бесплатно перейти на выпуск Home).
Обновление Windows от мая 2020 года необходимо — это версия 2004 или выше. Выберите шестеренку «Настройки «в меню «Пуск», затем выберите «Система «, а затем «О программе». Спецификации Windows показаны внизу панели:
Спецификации Windows
Обновление медленно развертывается с конца мая 2020 года. Если у вас версия ниже 2004, вы можете активировать обновление, нажав кнопку «Проверить наличие обновлений «в «Настройках «, а затем «Обновление и безопасность «.
Если версия 2004
Однако имейте в виду, что некоторые ПК сообщают, что версия 2004 в настоящее время недоступна на панели Центра обновления Windows. Вы не сможете выполнить обновление, пока Microsoft не выпустит исправление для вашего устройства.
Требования к ПК
WSL2 (и
ВНИМАНИЕ: изменение настроек BIOS может привести к поломке вашего ПК! Будьте осторожны при внесении изменений. Обратитесь к справочным страницам вашего производителя или поищите
Аппаратная виртуализация будет активна на большинстве устройств, но вы можете проверить это, перезагрузив компьютер и открыв панели BIOS — обычно нажав клавишу DEL, F2или F10при запуске системы. Ищите технологию виртуализации, VTx или подобные варианты. Убедитесь, что они включены, сохраните и перезагрузите устройство.
Наконец, убедитесь, что на вашем C: диске есть как минимум 1 ГБ свободного места на диске — в идеале больше. Вы можете освободить место в меню «Настройки «, «Система», «Хранилище «или с помощью инструмента очистки диска в инструментах администрирования Windows.
На момент написания WSL2 установит Linux на ваш C: диск, хотя после установки его можно переместить в другое место.
Включить WSL2
Платформа виртуальной машины и подсистема Windows для Linux должны быть включены в разделе Включение или отключение компонентов Windows. Доступ к панели можно получить, нажав «Пуск» и введя «функции» или с помощью значка «Программы и компоненты «в классической панели управления.
включить WSL2
Кроме того, вы можете выполнить следующие команды в терминале Windows Powershell, запущенном от имени администратора:
dism.exe /online /
dism.exe /online /
Перезагрузите Windows 10, затем включите WSL2 по умолчанию, введя следующую команду в Windows Powershell или командной строке:
wsl —
Скачать 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.
* 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
sudo
sudo
sudo
Другие дистрибутивы Linux будут иметь аналогичный процесс, но обратитесь за помощью к документации.
Переключение между WSL1 и WSL2
Существующие дистрибутивы WSL1 можно преобразовать в WSL2. Ввод следующей команды в терминал Windows Powershell для отображения установленных дистрибутивов Linux и их версии WSL:
PS C: \> wsl —list —verbose
NAME STATE VERSION
* Ubuntu Running 1
(Звездочка * выделяет установку Linux по умолчанию.)
Чтобы переключиться Ubuntuна WSL2, введите:
wsl —
Точно так же, чтобы вернуться к WSL1, введите:
wsl —
Установите дистрибутив 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 —
где
Предполагая, что все прошло хорошо, вы можете безопасно удалить файл резервной копии (D: \backup\ubuntu.tar).
Установить
Чтобы запустить терминал 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 <
Например: 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
sudo
Точно так же вы можете протестировать приложения Node.js как в Windows, так и в Linux. Опять же, в Windows есть установщик, но Node.js 14.x устанавливается в Ubuntu с помощью команд:
sudo
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash —
sudo
git, nodeи npmтеперь команды будут работать в любой среде.
Установка Докера
Единственным исключением из правила «установить дважды» является Docker!
Docker запускает приложения в изолированных контейнерах Linux, которые концептуально аналогичны облегченным виртуальным машинам с ОС, одним приложением и его зависимостями. Использование Docker для
Docker Desktop для Windows полностью поддерживает WSL2:
нет необходимости использовать
Docker запускается и работает значительно быстрее, если настроен на использование WSL2.
установка Docker Desktop в Windows позволяет работать как в Windows, так dockerи
Docker Desktop предлагает вам использовать WSL2 при первом запуске. Кроме того, вы можете выбрать «Настройки «в меню значков на панели задач Docker, затем выбрать вкладку «Общие «, установить флажок «Использовать механизм на основе WSL 2 «и нажать «Применить и перезапустить «.
Движок Docker WSL2
Docker будет использовать дистрибутив Linux по умолчанию, но вы также можете включить его в других установленных дистрибутивах на панели интеграции WSL в разделе «Настройки «, затем «Ресурсы «.
Запуск приложений Apache и PHP с помощью Docker
Можно установить
В этом примере вы создадите небольшой файл 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команду, чтобы запустить
docker run \
-it —rm -p 8080:80 —name php \
-v «$PWD»: /var/www/html \
php:7.
Примечание: эта команда также будет работать в Windows, хотя ссылку на $PWDнужно будет заменить полным путем к файлу в нотации Linux, например /c/php/.
Откройте https: //localhost:8080/в любом
Контейнер 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
Откройте http: //localhost:8888/в браузере, чтобы просмотреть файлы в этом каталоге (index.htmlвозвращается по умолчанию).
Имейте в виду, что порты, доступные в одной ОС, могут быть недоступны в другой. Порт 80 часто зарезервирован приложением Skype для Windows 10, и его нельзя изменить (хотя классическая версия Desktop позволяет это сделать).
Интеграция с 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
Настройки хранятся в вашем ~/.
Резюме
WSL2 произведет революцию в вашей