Wsl windows 10

Содержание

Используем подсистему Linux (WSL) в Windows 10 для разработки сайтов

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 необходимо выполнить следующие действия:

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

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

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

Создание директории для веб-проекта

Все веб-проекты предлагаю создавать в директории C:\projects. Для примера создадим в ней новый тестовый проект с названием директории test, конечный путь будет иметь следующий вид: C:\projects\test.

Установка программного обеспечения в ОС Ubuntu

Запускаем установленное приложение Ubuntu.

Откроется терминал, в котором при первом запуске нужно будет ввести новое UNIX имя пользователя (username) и пароль (password).

Обновим локальный индекс apt пакетов в операционной системе Ubuntu:

sudo apt update

Обновим установленное программное обеспечение:

sudo apt upgrade

Установим Apache:

sudo apt install apache2

Установим MySQL сервер:

sudo apt install mysql-server

Установим php и другие пакеты, необходимые для веб-разработки:

sudo apt install php libapache2-mod-php php-mysql php-xml php-curl

Включим модуль Mod rewrite в Apache:

sudo a2enmod rewrite

Также есть официальная инструкция с microsoft.com, если вдруг какой-то момент покажется непонятным или не будет работать.

Изменение метода аутентификации MySQL пользователя root

Для изменения метода аутентификации MySQL пользователя root выполним следующие действия:

  1. Запустим службу mysql.

    sudo service mysql start

  2. Подключимся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер:

    sudo mysql -uroot -p

  3. Нажмём на Enter, т.к. по умолчанию пользователь root, созданный при установке, не имеет пароля.

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

FLUSH PRIVILEGES;

Создание базы данных

Создадим базу данных для веб-проекта test. Для этого введем в командной строке MySQL введём следующую команду:

CREATE DATABASE test;

Если в базу данных test необходимо загрузить дамп некоторой базы, находящийся, например, в файле backup.sql, то можно воспользоваться следующими инструкциями:

use test;source backup.sql;

Для завершения работы с командной строкой MySQL выйдем из неё:

exit

Установка phpMyAdmin

Выполняем команду

sudo apt install phpmyadmin

Когда появится первое сообщение, нажмите пробел, Tab, а затем Enter, чтобы выбрать Apache.Выберите Да, когда вас попросят использовать dbconfig-common для настройки базы данных.Укажите пароль пользователя MySQL rootВыберите пароль для самого приложения phpMyAdmin

Включить необходимые расширения PHP:

sudo phpenmod mcryptsudo 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:\projects\test, то в Ubuntu к ней нужно обращаться так /mnt/c/projects/test.

Итоговое содержимое файла test.conf:

ServerAdmin webmaster@test.loc ServerName test.loc ServerAlias www.test.loc DocumentRoot /mnt/c/projects/test/ Options Indexes FollowSymLinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

Включим новый виртуальный хост с помощью утилиты a2ensite:

sudo a2ensite test.conf

Перенаправление test.loc на локальный веб-сервер

Для того чтобы доменное имя test.loc было связано с локальным веб-сервером необходимо открыть файл hosts, расположенный по адресу C:\Windows\System32\drivers\etc и добавить в него строчку:

127.0.0.1 test.loc

Команды для запуска и остановки веб-сервера

Для запуска Apache и MySQL необходимо ввести следующие команды:

sudo service apache2 startsudo service mysql start

Для остановки веб-сервера:

sudo service apache2 stopsudo 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 и всё будет работать без дополнительных настроек.

Источник: https://www.zencod.ru/articles/linux-wsl-in-windows

Как установить WSL 2 в Windows 10

Wsl windows 10

Если вы хотите опробовать улучшенную 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 (или любой другой дистрибутив, который вы выбрали).

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

Все в порядке, это норма; дистрибутив должен распаковаться и распаковать все свое содержимое – заварите чайку, подождите, только не прерывайте процесс.

https://www.youtube.com/watch?v=OTszks_80nw

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

Преобразование Ubuntu на WSL 1 в WSL 2

Если вы используете WSL 1, вы можете обновить существующую версию до WSL 2. Чтобы преобразовать существующий дистрибутив WSL 1 в WSL 2, выполните в PowerShell следующее команду:

wsl.exe –set-version Ubuntu 2

Только замените «Ubuntu» в вышеприведённой команде названием того дистрибутива, который вы запускаете при запуске WSL 1.

Расскажите в камментах не возникло ли у вас трудностей при установке и использовании WSL2 по инструкции из этого гайда.

Источник: https://omgubuntu.ru/kak-ustanovit-wsl-2-v-windows-10/

Запуск графической оболочки Linux Bash в Windows 10

Wsl windows 10

Как запустить графический интерфейс дистрибутива Linux в подсистеме WSL на Windows 10. В качестве примера установим рабочее окружение Ubuntu (Gnome) в дистрибутив Ubuntu 18.04 LTS на Windows 10 May 2019 Update (версия 1903)

В первую очередь необходимо установить Linux Bash в Windows 10. Инструкция по установке Linux Bash описана в следующей статье:

Как установить и использовать оболочку Linux Bash в Windows 10

Для установки Ubuntu из Microsoft Store предлагаем выбрать версию Ubuntu 18.04 LTS в операционной системе Windows 10 May 2019 Update (версия 1903).

Параметры установленного дистрибутива Linux расположены в меню Windows Параметры > Приложения > Приложения и возможности. Из списка установленных программ выберите Ubuntu 18.04 и нажмите на Дополнительные параметры.

Так же открыть параметры Ubuntu 18.04 можно нажав правой кнопкой мыши по значку Ubuntu 18.04 в меню Пуск, в открывшемся меню выбираем Дополнительно > Параметры приложения.

Параметры установленного Линукс дистрибутива в Windows 10 (версия 1903):

Расположена файловая система Ubuntu на локальном диске С по следующему адресу:

%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs

Таким образом можно получить доступ к нужным файлам и папкам Linux.

После установки и первоначальной настройки системы нужно обновить систему и установить рабочее окружение.

Обновление системы и установленных пакетов:

sudo apt update && sudo apt dist-upgrade

Установка рабочего окружения и пакета программ Ubuntu (Gnome):

sudo apt install ubuntu-desktop

Меняем права доступа к папке кэша:

sudo chown -R имя_пользователя ~/.cache

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

VcXsrv Windows X Server

Таких программ несколько. Предлагаем выбрать активно развивающуюся программу VcXsrv Windows X Server. Устанавливаем с настройками по умолчанию.

Скачать VcXsrv Windows X Server

После запуска программы VcXsrv Windows X Server в окне Display Settings есть выбор отображения интерфейса оконной системы Linux. В нашем случае отлично работал вариант с большим оконным режимом (One large window).

Там же в настройках Display number выставляем значение 0 (если возникнут проблем с запуском интерфейса, то значение нужно изменить, кроме того нужно будет изменить и значение в команде запуска).

Далее оставляем настройки по умолчанию. По окончанию настройки у нас запустится пустое окно.

Переходим в запущенную Linux систему, у нас она открыта в виде командной строки и вводим следующие команды:

sudo service dbus restart > /dev/null; DISPLAY=:0 XDG_SESSION_TYPE=x11 gnome-session > /dev/null > /dev/null

Примечание. Если выше вы изменили значение отображение дисплея, то и в данной команде для значения DISPLAY необходимо тоже изменить значение.

Для дальнейших запусков графического окружения нужно вводить команду выше, при этом программа VcXsrv Windows X Server должна быть предварительно открыта.

Также создайте сценарий оболочки start-ubuntu (имя файла необязательно):

#!/bin/sh sudo service dbus restart /mnt/c/Program\ Files/VcXsrv/vcxsrv.exe :0 -ac -nodecoration & DISPLAY=0:0 XDG_SESSION_TYPE=x11 gnome-session /mnt/c/Windows/System32/taskkill.exe /IM vcxsrv.exe /T /F

Сделайте скрипт оболочки исполняемым:

chmod u+x start-ubuntu

Запустить скрипт оболочки:

./start-ubuntu

Известные проблемы и их решения

Из недостатков, с которыми столкнулись, отметим следующие: проблема с правами доступа различных приложений и системных функций. В качестве решения можно систему запустить с правами root.

В целях безопасности не рекомендуется запускать систему с полными правами администратора, но если есть в этом необходимость, то запустить можно следующим образом: после того как открыли приложение VcXsrv и Linux систему, которая открылась в виде командной строки, нужно ввести команду: sudo su , затем вводим команду для запуска графического окружения:

service dbus restart > /dev/null; DISPLAY=:0 XDG_SESSION_TYPE=x11 gnome-session > /dev/null > /dev/null

Теперь нам будут доступны ранее неработающие функции системы, например, русификация и работа некоторых расширений Gnome.

Так же мы столкнулись с тем, что предустановленный браузер Firefox не устанавливает дополнения. Можно воспользоваться другим браузером, например, браузером Opera. В режиме суперпользователя запускать его нужно с помощью терминала командой: opera –no-sandbox.

Система установится на английском языке, установка другого языка доступна только под системой с правами администратора (sudo su). Установить русский язык в систему можно следующими командами:

sudo apt install language-pack-rusudo apt install language-pack-gnome-rusudo apt install firefox-locale-ru

После этого в настройках системы Ubuntu нужно выбрать и активировать установленный русский язык.

Анатолий Гусляков, модератор сайта Comss.ru

Источник: https://www.comss.ru/page.php?id=5609

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Wsl windows 10

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL.

Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК.

Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.

Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.

Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.

Установка WSL и дистрибутива

Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.

Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.

Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива).

Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux'овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива.

В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов.

Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.

Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:

apt install nano

sudo вводить не требуется, так как мы уже под root'ом. Отредактируем файл /etc/apt/sources.list:

nano /etc/apt/sources.list

У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:

deb http://mirror.yandex.ru/ubuntu/ xenial main universe restricteddeb-src http://mirror.yandex.ru/ubuntu/ xenial main universe restricted deb http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricteddeb-src http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted deb http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricteddeb-src http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted

Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:

apt update && apt upgrade

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

addgroup –gid 1000 user1adduser –home /home/user1 –shell /bin/bash –uid 1000 -G user1,sudo user1

Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл ~/.bashrc:

cd /home/user1su user1passwdnano .bashrc
Мой базовый .bashrc выглядит так# If not running interactively, don't do anythingcase $- in *i*) ;; *) return;;esac # don't put duplicate lines or lines starting with space in the history.# See bash(1) for more optionsHISTCONTROL=ignoreboth # append to the history file, don't overwrite itshopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)HISTSIZE=1000HISTFILESIZE=2000 # check the window size after each command and, if necessary,# update the values of LINES and COLUMNS.shopt -s checkwinsize # If set, the pattern “**” used in a pathname expansion context will# match all files and zero or more directories and subdirectories.#shopt -s globstar # make less more friendly for non-text input files, see lesspipe(1)[ -x /usr/bin/lesspipe ] && eval “$(SHELL=/bin/sh lesspipe)” # set variable identifying the chroot you work in (used in the prompt below)if [ -z “${debian_chroot:-}” ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot)fi # set a fancy prompt (non-color, unless we know we “want” color)case “$TERM” in xterm|xterm-color|*-256color) color_prompt=yes;;esac # uncomment for a colored prompt, if the terminal has the capability; turned# off by default to not distract the user: the focus in a terminal window# should be on the output of commands, not on the prompt#force_color_prompt=yes if [ -n “$force_color_prompt” ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fifi if [ “$color_prompt” = yes ]; then if [[ ${EUID} == 0 ]] ; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] ' else PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] ' fielse PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ 'fiunset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dircase “$TERM” inxterm*|rxvt*) PS1=”\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a\]$PS1″ ;;*) ;;esac # enable color support of ls and also add handy aliasesif [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval “$(dircolors -b ~/.dircolors)” || eval “$(dircolors -b)” alias ls='ls –color=auto' #alias dir='dir –color=auto' #alias vdir='vdir –color=auto' alias grep='grep –color=auto' alias fgrep='fgrep –color=auto' alias egrep='egrep –color=auto'fi # colored GCC warnings and errors#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # some more ls aliasesalias ll='ls -alF'alias la='ls -A'alias l='ls -CF' # Add an “alert” alias for long running commands. Use so:# sleep 10; alertalias alert='notify-send –urgency=low -i “$([ $? = 0 ] && echo terminal || echo error)” “$(history|tail -n1|sed -e '\''s/\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')”' # Alias definitions.# You may want to put all your additions into a separate file # ~/.bash_aliases, instead of adding them here directly.# See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliasesfi # enable programmable completion features (you don't need to enable# this, if it's already enabled in /etc/bash.bashrc and /etc/profile# sources /etc/bash.bashrc).if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fifi

Все, подсистема готова к использованию… почти…

Установка X-сервера, Xfce и прочих GUI'шных приложений

Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно.

Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init'ом (который кстати не заменить).

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

Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket'ы и все спокойно общается через них.

Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.

Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root'а. Первым делом настроим русские локали:

locale-gen ru_RUlocale-gen ru_RU.UTF-8update-locale

Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:

apt install -y xfce4-session xfce4-notifyd xfce4-appfinder xfce4-panel xfce4-quicklauncher-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfce4-settings xfce4-terminal xfce4-taskmanager mousepad

Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:

  1. config.xlaunch — файл настроек для VcXsrv
  2. x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:

    WScript.CreateObject(“Shell.Application”).ShellExecute “wsl”, “cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session”, “”, “open”, 0

    Поясню, что здесь происходит. Мы говорим VBscript выполнить приложение wsl с параметром cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session, папка запуска нам не важна, поэтому пустая строка, действие open — запуск, 0 — скрытый режим.

    Самому wsl мы отдаем команду на выполнение: переход в папку пользователя, затем с установкой переменных окружения DISPLAY (дисплей X-сервера) и LANG (используемая локаль) мы запускаем xfce4-session от имени нашего пользователя user1 (благодаря команде su)

  3. start.bat — batch файл для запуска, по желанию его можно засунуть в автозагрузку
    start config.xlaunchwscript x-run.vbs

Источник: https://habr.com/ru/post/412633/

Установка и использование подсистемы Linux (WSL 2) в Windows 10

Wsl windows 10

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 Panel\All Control Panel Items\Programs and Features\Turn 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

После этого также необходимо перезагрузить компьютер.

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

После установки можно проверить используемую версию WSL с помощью команды

wsl –list –-verbose

Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:

wsl –set-version Ubuntu-20.04 2

Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:\Users\234\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState.

После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl.

При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo.

В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.

Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:

wslls /mnt

ls/mnt/c

dir | wsl grep Sawsl ls ‑la > 123.txtwsl 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.04\home\1122.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 geditsudo 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

Источник: https://winitpro.ru/index.php/2020/07/13/zapusk-linux-v-windows-wsl-2/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.