Настройка wsl visual studio
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.
Первым делом: установка необходимых компонентов
Чтобы выполнить все действия описанные в данной статье, вам понадобятся 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, вы можете прочитать статью в блоге здесь и обширную документацию, охватывающую архитектуру, здесь.
Установка и настройка WSL
Далее заходим в Microsoft Store и через поиск находим образ Ubuntu для установки в WSL:
После установки в Пуске появится bash-консоль с аналогичным названием Ubuntu, запускаем её (при первом запуске необходимо будет ввести имя нового пользователя и пароль):
Теперь стоит обновить Ubuntu и доустановить необходимые компоненты. Начинаем с обновления:
Далее установим пакет с утилитами для разработки а-ля GNU C++ компилятор, линкер и т. д. :
Также потребуется gdbserver, который позволит удалённо отлаживать программу при помощи GDB отладчика:
Для удаленного подключения к Ubuntu ещё потребуется SSH-сервер:
Пролистываем вниз до параметра “PasswordAuthentication” и меняем его значение на “yes”, что разрешает подключение по паролю:
Примечание: Нажимаем CTRL + X для выхода и далее Y для сохранения изменений.
Генерируем SSH ключи:
Теперь необходимо запустить службу SSH перед подключением из Visual Studio:
Примечание: Запуск службы необходимо производить каждый раз, когда запускается первая bash-консоль после перезагрузки\включения ПК или закрытия всех окон bash-консоли, т.к. WSL убивает все процессы Linux, когда вы закрываете последнее окно bash консоли.
На этом настройка WSL завершена, можно переходить к следующему этапу.
Теперь можно создать проект для консольного приложения под Linux:
Чуток изменим исходный код по сравнению с исходным и поставим брейкпоинт на втором printf:
Теперь настроим подключение к WSL, чтобы попробовать скомпилировать и начать отладку. Заходим в Tools -> Options -> Cross Platform (у вас будет пусто на свежеустановленной Visual Studio):
Нажимаем Add и вводим логин\пароль пользователя, что задавали в bash-консоли (не забываем предварительно запустить SSH-сервер и не закрывать bash-консоль):
Если все ввели правильно (и не забыли отключить встроенный в Windows SSH сервер), то подключение появится в списке. Можно закрывать окно и пробовать собрать проект, должны получить в Output следующее:
Успех! Пробуем начать отладку:
Ква-ква-ква. Небольшой провал. Но и это поправимо, надо просто сменить в настройках проекта тип отладки:
Пробуем еще раз (кликабельно):
Примечание: Текст из printf выводится не в стандартный Output, а в консоль Linux, которая находится в Debug -> Linux Console.
Заключение
В итоге могу сказать, что установка и настройка для работы проходит быстро и без каких-либо красноглазых засиживаний часами, практически всё уже подготовлено не то, что для разработчика, а для новичка-нуба в отношении Linux.
Мне же интересно опробовать компиляцию для АРМ SoC в WSL, т. к. грамотный человек пишет, что с использованием WSL всё происходит в разы быстрее и без костылей типа MSys, minGW, Cygwin. Будем разбираться, пробовать. :)
Рабочая среда это важно, чем проще и быстрее вы можете развернуть рабочую среду, тем эффективнее будет строится ваша работа.
В первое время, я делал много ошибок работая под 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 или используя любой-другой дистрибутив из доступных.
Читайте также: