WSL — Windows Subsystem for Linux

Матеріал з Wiki.Zina
Перейти до навігації Перейти до пошуку

Установка

[ред. | ред. код]

Windows 10

[ред. | ред. код]

Официальная инструкция:

Windows Server 2019

[ред. | ред. код]

Официальная инструкция:

PowerShell as Administrator:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

После установки WSL перезагрузите компьютер.

Создайте папку, в которую будет установлен дистрибутив Linux, и перейдите в нее — например:

cd ~
mkdir WSL
cd WSL

Затем скачайте дистрибутив Linux. Список официальных дистрибутивов:

Примеры:

curl.exe -L -o Ubuntu-2004.zip https://aka.ms/wslubuntu2004
curl.exe -L -o Ubuntu-1604.zip https://aka.ms/wsl-ubuntu-1604

Распакуйте дистрибутив:

Expand-Archive .\Ubuntu-2004.zip .\Ubuntu-2004
Expand-Archive .\Ubuntu-1604.zip .\Ubuntu-1604

Перейдите в папку дистрибутива и запустите установщик:

cd .\Ubuntu-2004
.\ubuntu2004.exe

После установки автоматически будет запущен сеанс WSL.

Проверить версию запущенной Ubuntu:

 lsb_release -r

Запуск WSL

[ред. | ред. код]

Чтобы запускать сеанс Linux, выполните в PowerShell:

wsl

Посмотреть список установленных дистрибутивов Linux:

wslconfig /l

Запуск определенного дистрибутива:

wsl -d Ubuntu-16.04

Выключить запущенный дистрибутив:

wslconfig /t Ubuntu-16.04

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

wslconfig /s Ubuntu-16.04

Перемещение, бэкап, удаление Linux

[ред. | ред. код]

Скачать LxRunOffline: https://github.com/DDoSolitary/LxRunOffline/releases — выбрать версию *-msvc.zip и распаковать. Добавить путь к папке в системную PATH.

Показать список установленных дистрибутивов Linux:

LxRunOffline list

Переместить в папку C:\Users\romych\WSL\Ubuntu-20.04:

LxRunOffline move -n Ubuntu-20.04 -d  C:\Users\romych\WSL\Ubuntu-20.04

Забекапить дистрибутив в файл .tar.gz (предварительно выключите его командой wslconfig /t Ubuntu-20.04):

LxRunOffline export -n Ubuntu-20.04 -f Ubuntu-20.04.tar.gz

На сообщения типа [WARNING] Ignoring an unsupported file "..." of type 0020000 не обращаем внимания - это ссылки на устройства, которые будут автоматически созданы при импорте.

Восстановить из бэкапа:

LxRunOffline install -n Ubuntu-20.04 -d Ubuntu-20.04 -f Ubuntu-20.04.tar.gz

Удалить дистрибутив (предварительно выключите его командой wslconfig /t Ubuntu-20.04):

LxRunOffline uninstall -n Ubuntu-20.04

Удаление WSL

[ред. | ред. код]
Remove-WindowsFeature Microsoft-Windows-Subsystem-Linux

Работа с кодом

[ред. | ред. код]

Важно знать

  1. Не редактируйте файлы Linux из программ Windows.
    Хоть это технически и возможно, но возникают проблемы с правами файлов.
  2. После установки WSL не будут работают графические (GUI) программы Linux.
    Это решается посредством установки Windows-альтернатив X Server — см. ниже.
  3. Из WSL невозможно получить права администратора Windows.
    Это известная проблема и она может решиться в будущем.
  4. По предыдущей причине есть нюанс с /etc/hosts:
    • из WSL нельзя отредактировать системный файл c:\windows\system32\drivers\etc\hosts,
    • и нет смысла редактировать линуксовский файл /etc/hosts — потому что он автоматически перегенерируется из системного файла c:\windows\system32\drivers\etc\hosts.
      Единственный корректный вариант — редактировать файл c:\windows\system32\drivers\etc\hosts, используя Windows программы.

Настройка

[ред. | ред. код]
cd
vim .vimrc

Добавить:

set termguicolors

Опционально можно включить тему (как просмотреть темы):

colorscheme darkblue
colorscheme blue

После сохранения добавить алиас для рута, чтобы под sudo применялись настройки:

sudo ln -s /home/$(whoami)/.vimrc /root/.vimrc

В Windows отключить сервис World Wide Web Publishing Service.

В Windows 11:

  • отключить Fast Startup (найти поиском Control Panel и запустить, найти в ней Power Options, кликнуть Change what the power buttons do, кликнуть Change settings that are currently uanavailable, убрать галочку с Turn on fast startap (recommended) и Hibernate)
  • создать в корне C:\Users\USERNAME\ файл .wslconfig с содержимым:
[wsl2]
kernelCommandLine=ipv6.disable=1
  • После этих изменений выполнить wsl --shutdown

В Ubuntu:

sudo apt install apache2

В конец файла /etc/apache2/apache2.conf добавить строки:

Servername localhost
AcceptFilter http none
AcceptFilter https none

Рестартовать Apache:

sudo service apache2 restart

Проверить в Windows:

Теминал Bash под Windows

[ред. | ред. код]

Запустить теминал Bash можно, набрав в поиске Windows bash

Можно сделать ярлык с такой строкой запуска:

%windir%\system32\bash.exe ~

Знак ~ в конце нужен для того, чтобы при вхоже в Bash вы оказывались не в папке по умолчанию /mnt/c/Windows/System32, а в своей домашней папке Linux.

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

[ред. | ред. код]

Сделать браузер Windows — например, Chrome — доступным из Bash проще всего в три действия:

1. Создать символическую ссылку на запускаемый файл chrome.exe (в этом примере положим его в папку ~/.bin):

mkdir ~/.bin
cd ~/.bin
ln -s /mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe chrome.exe

2. Назначить chrome.exe стандартной переменной окружения BROWSER — для этого добавить в .bashrc строку:

export BROWSER='/home/'$(whoami)'/.bin/chrome.exe'

3. Выполнить source ~/.bashrc

После этого при запуске в командной строке $BROWSER будет запускаться Chrome.

Запуск графических приложений Linux

[ред. | ред. код]

По умолчанию в терминале Bash под Windows 10 WSL работают только консольные программы Linux. Если требуется запуск графических (GUI) приложений — например, текстового редактора Sublime Text — то нужно обеспечить работу X Server. Проще всего это сделать с помощью бесплатной программы MobaXterm.

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

"C:\Program Files (x86)\Mobatek\MobaXterm\MobaXterm.exe" -hideterm

Ссылки

[ред. | ред. код]