WSL — Windows Subsystem for Linux
Официальная инструкция:
Официальная инструкция:
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
Чтобы запускать сеанс Linux, выполните в PowerShell:
wsl
Посмотреть список установленных дистрибутивов Linux:
wslconfig /l
Запуск определенного дистрибутива:
wsl -d Ubuntu-16.04
Выключить запущенный дистрибутив:
wslconfig /t Ubuntu-16.04
Сделать дистрибутив запускаемым по-умолчанию:
wslconfig /s Ubuntu-16.04
Скачать 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
Remove-WindowsFeature Microsoft-Windows-Subsystem-Linux
- Начало работы с VS Code с помощью WSL
- Developing in the Windows Subsystem for Linux with Visual Studio Code
Важно знать
- Не редактируйте файлы Linux из программ Windows.
Хоть это технически и возможно, но возникают проблемы с правами файлов. - После установки WSL не будут работают графические (GUI) программы Linux.
Это решается посредством установки Windows-альтернатив X Server — см. ниже. - Из WSL невозможно получить права администратора Windows.
Это известная проблема и она может решиться в будущем. - По предыдущей причине есть нюанс с
/etc/hosts:- из WSL нельзя отредактировать системный файл
c:\windows\system32\drivers\etc\hosts, - и нет смысла редактировать линуксовский файл
/etc/hosts— потому что он автоматически перегенерируется из системного файлаc:\windows\system32\drivers\etc\hosts.
Единственный корректный вариант — редактировать файлc:\windows\system32\drivers\etc\hosts, используя Windows программы.
- из WSL нельзя отредактировать системный файл
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
Можно сделать ярлык с такой строкой запуска:
%windir%\system32\bash.exe ~
Знак ~ в конце нужен для того, чтобы при вхоже в Bash вы оказывались не в папке по умолчанию /mnt/c/Windows/System32, а в своей домашней папке Linux.
Сделать браузер 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.
По умолчанию в терминале Bash под Windows 10 WSL работают только консольные программы Linux. Если требуется запуск графических (GUI) приложений — например, текстового редактора Sublime Text — то нужно обеспечить работу X Server. Проще всего это сделать с помощью бесплатной программы MobaXterm.
Чтобы MobaXterm запускался сразу в свернутом в трей режиме, создайте ярлык с командой:
"C:\Program Files (x86)\Mobatek\MobaXterm\MobaXterm.exe" -hideterm