Настройка wsl visual studio

Обновлено: 06.07.2024

Windows это великая платформа и одна из наиболее популярных операционных систем в мире, но мы не можем отрицать истинное число построенных приложений и рабочих нагрузок, запускаемых в операционной системе Linux. Microsoft воспользовалась этой возможностью в своей подсистеме Windows для Linux, а также в прочих проектах с открытым исходным кодом, а также в других отраслях, в которые Microsoft вносит свой вклад. В данной главе мы узнаем о таких инструментариях, как VSCode и удалённые расширения WSL, которые делают возможным для разработчика беспрепятственно разрабатывать приложения на базе Linux из операционной системы Windows со всеми необходимыми инструментами и средой выполнения в реальном времени, при этом в комфортной среде Linux, запускаемой поверх подсистемы Windows для Linux, не беспокоясь о трансляции путей Windows - Linux, совместном использовании файлов или любых иных проблемах при переходах между операционными системами.

Управление источником

Прежде чем мы сможем установить среду разработки Linux в подсистеме Windows для Linux, вначале нам требуется настроить контроль источника или управление версиями для отслеживания изменений в исходном коде и управления ими. В наши дни наиболее популярным инструментом управления исходным кодом, применяемым разработчиками по всему миру является Git, поэтому давайте начнём с его установки.

Инсталляция Git

Большинство дистрибутивов WSL обладают предварительно установленным в них “Git”, однако если он отсутствует или не установлен по умолчанию, как в дистрибутиве kali-linux, тогда вы пожелаете в явном виде установить “Git” в своей подсистеме Windows для Linux выполнив следующие шаги:

Запустите WSL из меню Пуск Windows. Для этого примера мы применяем Ubuntu 18.04.

Установка и настройка

Прежде всего вам необходимо настроить некую идентичность в Git с тем, чтобы все выполняемые вами изменения в коде связывались тегом с вашим именем (Author’s Name) и могло бы отличаться от любого иного изменения кода, когда вы работаете над неким кодом репозитория в команде разработчиков:



Установка глобальных настроек Git

Разрешение отличий конца строки в Windows и Linux



Отличие конца строки в Windows и Linux

Для решения проблемы окончаний строк примените приводимую ниже команду в Windows, которой вы можете установить глобальные настройки git для обеспечения соответствующих окончаний строк в файлах при проверки правильности в Windows и также преобразовывать их в Unix стиль при фиксации этих файлов:



Принудительная вставка CRLF конца строки в WSL

Совместное использование полномочий между Windows и WSL

Когда вы работаете и в Windows, и в Linux, вы также желаете выполнить синхронизацию своих полномочий; это означает, что все хранимые в Windows полномочия должны быть доступными для Git в вашей подсистеме Windows для Linux и наоборот.

В Windows откройте консоль PowerShell и наберите приводимую ниже команду, завершая ввод нажатием на Enter:



Совместное применение полномочий git при помощи Диспетчера полномочий Windows

Когда мы пользуемся wincred в качестве credential.helper , git применяет Диспетчер полномочий Windows для хранения ваших полномочий и, при помощи данной конфигурации, он доступен как из Windows, так и из WSL.

Терминал Windows

Терминал Windows является проектом Microsoft с открытым исходным кодом, который имеет целью предоставление богатых свойств редактирования текста, поддержки вкладок, фона и стилей шрифтов. Более того, новый терминал обеспечивает привязку клавиш, а также широкие возможности настройки и установки, ибо настройки доступны в виде файла JSON с названием settings.json .

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

Установка терминала Windows из Microsoft Store

Для установки Терминала Windows из Microsoft Store выполните приводимые ниже шаги:



Поиск Терминала Windows в Microsoft Store



Установка Терминала Windows из Microsoft Store

После того как установка выполнена, вы можете запускать Терминал Windows из меню Пуск/

Установка и настройка при помощи Chocolatey

Наш второй метод пользуется инструментарием “Chocolatey”, который выступает в роли установщика из командной строки приложений Windows. Chocolatey применяет формат упаковки NuGet для паковки программного обеспечения и приложений, превращая установку в Windows в чрезвычайно простую.

Для установки Chocolatey в Windows 10 и последующей установки Терминала Windows воспользуйтесь следующим:

Запустите консоль PowerShell с полномочиями администратора.

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



Выгрузка программного обеспечения Chocolatey

По завершению данной установки повторно запустите свою консоль PowerShell и наберите choco --version . Если вы получили сведения о версии, значит мы успешно установили Chocolatey.



Установка Терминала Windows при помощи Chocolatey

Настройка WSL в терминале Windows



Запуск WSL из Терминала Windows

Имеются динамические профили, создаваемые во время исполнения и они добавляются в файл settings.json . Каждый динамический профиль уникально идентифицируется создаваемым системой GUID и свойством источника: Windows.Terminal.Wsl , Windows.Terminal.Azure или Windows.Terminal.PowershellCore ,чем-то подобным приводимым ниже в образце:

К этим настройкам также можно получить доступ из ниспадающего меню Терминала Windows вслед за знаком плюс ( + ) для “New Tab” ➤ Settings. Или просто нажав Ctrl+ для запуска файла settings.json в текстовом редакторе.



Добавление командной строки WSL в настройках запуска Терминала Windows

В своём предыдущем примере мы экранировали обратные слеши в пути к файлу Windows, так как обратный слеш применяется в Linux для пометки специального символа.



Добавление иконок и запуск каталога для WSL в Терминале Windows

Существуют доступными великое множество прочих конфигураций и настроек и их можно найти в документации на GitHub там, где доступен исходный код Терминала Windows.

Visual Studio Code (VSCode)

Самый первый шаг состоит в выгрузке и установке Visual Studio Code с его URL. это займёт всего пару минут, поскольку по своей природе он облегчён. После установки Visual Studio Code нам требуется установить расширение “Remote – WSL”.

Расширение “Remote – WSL” позовляет разработчикам применять подсистему Windows для Linux в качестве среды разработки для Visual Studio Code. Это означает, что файлы WSL доступны для их изменения и вы можете отлаживать свои приложения Linux из Windows. Это расширение также заботится о большом числе трансляций путей и проблем совместимости между Windows и Linux. VSCode устанавливает сервер VSCode внутри подсистемы Windows для Linux, через запущенные в Windows инструментарий и инфраструктуру которой можно производить выполнение в WSL, а также настраивается канал взаимодействия который способен получать команды из Windows, а затем выполнять их в WSL и возвращать полученный результат обратно в Windows.



Удалённый сервер Visual Studio Code в подсистеме Windows для Linux

Работа с VS Code Remote и Windows Subsystem for Linux (WSL) дает возможность использовать полнофункциональную среду разработки Linux на ноутбуке или десктопе с предустановленной Windows. В этом материале рассмотрим то, как использовать эти инструменты для разработки приложений на Python в Linux.

image


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

Чтобы выполнить все действия описанные в данной статье, вам понадобятся WSL и VS Code с установленным расширением VS Code Remote — WSL. Давайте быстро рассмотрим, что это такое и как это установить.

Windows Subsystem for Linux

Инструмент Windows Subsystem for Linux, сокращённо WSL, позволяет запускать неизмененные двоичные файлы Linux непосредственно в Windows. Это означает, что вы можете использовать ваши любимые инструменты Linux, приложения командной строки и рабочие процессы на вашем компьютере с Windows, без необходимости использовать сложные настройки, такие как Dual Boot. А лучше всего то, что WSL является тесно интегрированным решением между Windows и Linux. Иначе говоря, если вы любите Linux, то вы можете получить доступ ко всем файлам и исполняемым файлам Windows прямо из оболочки bash, а если вы любите Windows, то вы можете легко получить доступ к двоичным файлам и файлам Linux из PowerShell или CMD.

Если вы новичок в WSL и хотите узнать больше, то можете пройти наш полный курс: Начало работы с подсистемой Windows для Linux, либо ознакомиться только с инструкцией по установке в документации WSL.

Visual Studio Code

Вам также потребуется расширение VS Code Remote — WSL, которое позволяет использовать контейнер, удаленный компьютер или Windows Subsystem for Linux (WSL) в качестве полнофункциональной среды разработки. Чтобы узнать больше и начать работу, посетите страницу с документацией по VS Code Remote.

На старт, внимание, Linux!

Вместо написания длинного раздела по началу работы с VS Code Remote в WSL, мы решили снять это небольшое видео, демонстрирующее ведение разработки на Python в WSL, с использованием VS Code Remote.

Это не просто изолированный Python, вы можете использовать VSCode Remote и WSL в любом Linux-проекте

При использовании VS Code Remote в WSL команды и расширения запускаются непосредственно в дистрибутиве Linux, поэтому вам не нужно беспокоиться о проблемах двоичной совместимости или других проблемах, связанных с кросс-ОС. Вы можете использовать VS Code в WSL так же, как и в Windows.

VS Code Remote и WSL меняют правила игры, когда дело доходит до разработки под Linux на Windows. Эти инструменты позволяют разрабатывать, запускать и отлаживать тонны приложений Linux непосредственно на вашем компьютере с Windows, предоставляя вам лучшее из среды Windows и Linux.

Если вы желаете узнать больше о Windows Subsystem for Linux и все о командной строке Windows, то следите за обновлениями в этом блоге! А если вам интересно узнать больше о VS Code Remote, вы можете прочитать статью в блоге здесь и обширную документацию, охватывающую архитектуру, здесь.

B54-1

Установка и настройка WSL

B54-2

Далее заходим в Microsoft Store и через поиск находим образ Ubuntu для установки в WSL:

B54-3

После установки в Пуске появится bash-консоль с аналогичным названием Ubuntu, запускаем её (при первом запуске необходимо будет ввести имя нового пользователя и пароль):

B54-4

Теперь стоит обновить Ubuntu и доустановить необходимые компоненты. Начинаем с обновления:

Далее установим пакет с утилитами для разработки а-ля GNU C++ компилятор, линкер и т. д. :

Также потребуется gdbserver, который позволит удалённо отлаживать программу при помощи GDB отладчика:

Для удаленного подключения к Ubuntu ещё потребуется SSH-сервер:

Пролистываем вниз до параметра “PasswordAuthentication” и меняем его значение на “yes”, что разрешает подключение по паролю:

B54-5

Примечание: Нажимаем CTRL + X для выхода и далее Y для сохранения изменений.

Генерируем SSH ключи:

Теперь необходимо запустить службу SSH перед подключением из Visual Studio:

Примечание: Запуск службы необходимо производить каждый раз, когда запускается первая bash-консоль после перезагрузки\включения ПК или закрытия всех окон bash-консоли, т.к. WSL убивает все процессы Linux, когда вы закрываете последнее окно bash консоли.

B54-6.jpg

B54-7

B54-8

На этом настройка WSL завершена, можно переходить к следующему этапу.

B54-9.jpg

Теперь можно создать проект для консольного приложения под Linux:

B54-10

Чуток изменим исходный код по сравнению с исходным и поставим брейкпоинт на втором printf:

Теперь настроим подключение к WSL, чтобы попробовать скомпилировать и начать отладку. Заходим в Tools -> Options -> Cross Platform (у вас будет пусто на свежеустановленной Visual Studio):

B54-11

Нажимаем Add и вводим логин\пароль пользователя, что задавали в bash-консоли (не забываем предварительно запустить SSH-сервер и не закрывать bash-консоль):

B54-12.jpg

Если все ввели правильно (и не забыли отключить встроенный в Windows SSH сервер), то подключение появится в списке. Можно закрывать окно и пробовать собрать проект, должны получить в Output следующее:

Успех! Пробуем начать отладку:

B54-13

Ква-ква-ква. Небольшой провал. Но и это поправимо, надо просто сменить в настройках проекта тип отладки:

B54-14.jpg

Пробуем еще раз (кликабельно):

B54-15

Примечание: Текст из printf выводится не в стандартный Output, а в консоль Linux, которая находится в Debug -> Linux Console.

Заключение

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

Мне же интересно опробовать компиляцию для АРМ SoC в WSL, т. к. грамотный человек пишет, что с использованием WSL всё происходит в разы быстрее и без костылей типа MSys, minGW, Cygwin. Будем разбираться, пробовать. :)


Заметки линуксойдаМаздайЯзык PHP

Рабочая среда это важно, чем проще и быстрее вы можете развернуть рабочую среду, тем эффективнее будет строится ваша работа.

В первое время, я делал много ошибок работая под Linux потому что привык к MacOS. Все дело в том, что я практически не касался серверных конфигураций на своем компьютере, у меня стоял Valet и он решал 90% всех проблем. И даже сумел настроить его для работы с Битрикс, что для меня уже говорит о многом. Битрикс капризна и тянет за собой устаревшие настройки (на данный момент директива mbstring.func_overload более не требуется для работы Битрикс) несовместимые с современными системами. Строить контейнеры мне не очень удобно, но о контейнерах я еще обязательно напишу.

Установка подсистемы Windows для Linux

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

Шаг первый и самый простой. Подробнее написано на сайте мелкомягких в официальной документации.

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

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

Далее нам необходимо обновиться до WSL2.

Как уже говорил, WSL 1-й редакции нам не интересен. А WSL2 может быть установлен только для 64-разрядных систем версии >=2004. Проверьте версию и при необходимости обновитесь.

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

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

Следующее что необходимо сделать это установить WSL2 в качестве версии по умолчанию:

Если все прошло успешно, то можно заняться установкой дистрибутива Linux.

Как видите, выбор не так уж и велик. Любителям CentOS придется заплатить за нее пару баксов, а чтобы настроить Kali пришлось повозиться с репозиториями и ключами, с той же проблемой столкнулся и при установке Debian. Интересно, с чего бы это :).

Что касается Ubuntu, то она ведет себя на удивление стабильно и проблем с ней замечено не было. Я установил версию 20.4, пользуюсь ею и очень доволен. Но никто не мешает установить параллельно несколько разных версий, главное не забыть при этом указать ту, которая будет установлена по умолчанию. Дистрибутивы устанавливаются в Windows как отдельные приложения и могут работать параллельно совершенно не мешая друг другу.

Эмулятор консоли для Windows

Еще один важный вопрос который предстоит решить. Использовать стандартную консоль Windows мне не хотелось. Благо, в сети есть немало эмуляторов которые великолепно работают под виндой, сохраняя при этом немало функций стандартной консоли nix-ов.

Я остановился на ConEmu и пользуюсь им для решения повседневных задач: ssh, wsl. Понравился он мне количеством настроек, скоростью работы и, собственно, тем, что по всем признакам не отличим от стандартной консоли Linux.

Во время работы, я пользуюсь встроенным терминалом VSCode, но недавно обнаружилась досадная проблема. Набор расширений Remote (wsl, ssh, containers), разгоняют процессор сервера до 100%, если подключаться к корневой директории. Когда я подключался к папке проекта, VSCode вел себя нормально, но иногда все же начинал кушать ресурсы процессора, о чем я узнавал по свисту кулера (моего не самого слабого компьютера). В связи с этим, пришлось установить VSCode insiders (по совету на StackOverflow), с ним подобных странностей пока не замечено.
В любом случае, дополнительный терминал позволяет мне работать в терминале VSCode только с проектом, а если нужно быстро подключиться к удаленному серверу или другой WSL системе, я пользуюсь ConEmu.

Управление дистрибутивами WSL

Управлять дистрибутивами мне проще через ConEmu, который интерпретирует команды *nix под Win стандарт.

Мы можем установить несколько дистрибутивов. Список всех дистрибутивов получаем командой wsl --list (-l) .

Если вы не выбрали дистрибутив по умолчанию, то им будет тот, который вы установили первым. Назначить дистрибутив по умолчанию легко:

wsl -s <DistributionName> , wsl --setdefault <DistributionName>

Войти в конкретный дистрибутив WSL так же просто:

wsl -d <DistributionName> , wsl --distribution <DistributionName>

Интересный момент, что WSL позволяет использовать команды LInux за пределами дистрибутива. Да, мы можем взаимодействовать с файловой системой маздая через терминал, используя привычные команды. Но разработчики пошли еще дальше. Команды можно смешивать.

Подробнее о том как миксовать команды WSL (Linux) и команды PowerShel можно почитать в официальной документации.


Установка PHP7.4 на WSL2

Начнем покорение нашего Эвереста с установки PHP. Я ставлю последнюю версию, у меня нет проектов привязанных к старым версиям, да и под них всегда можно создать отдельную систему на Ubuntu18 или используя любой-другой дистрибутив из доступных.

Читайте также: