Кроссплатформенная среда разработки linux windows

Глава 8. Разработка Linux в WSL

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 выполнив следующие шаги:

  1. Запустите WSL из меню Пуск Windows. Для этого примера мы применяем Ubuntu 18.04.
  2. Для установки Git из репозитория Ubuntu в WSL наберите следующую команду, как это показано на Рисунке 8-1.
 > sudo apt-get install git 

Установка Git в WSL

Теперь давайте проверим значение версии нашего установленного пакета выполнив приводимую ниже команду и если вы видите сведения о версии подобно показанным на Рисунке 8-2, тогда всё нормально для продолжения.

Проверка версии Git

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

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

 > git config --global user.name "Prateek Singh" > git config --global user.email prateek@ridicurious.com 

После того как настроены необходимые имя и электронная почта, вы можете перечислить все настройки git и проверить их при помощи команды git config —list , как это показано на Рисунке 8-3.

Читайте также:  Линукс консоль удалить папку

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

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

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

Чтобы продемонстрировать это мы проверим некий файл main.py в Windows при помощи git commit . После выполнения этого больше нечего фиксировать, как мы можем определить из соответствующего результата команды git status . Теперь, когда мы открываем ту же самую папку, в которой наш файл Python был зафиксирован, причём в своей подсистеме Windows для Linux, и запускаем git status , он всё ещё покажет не зафиксированные файлы. Проверив отличия этого файла при помощи git diff , мы видим добавляемым в конец строки странный символ ^m , что отражено на Рисунке 8-4; это происходит по причине концов строк. Windows применяет для окончания строки возврат каретки и перевод строки ( \r\n или CR/LF , в то время как окончания строк Unix представляются всего лишь переводом строки ( \n или LF . Символ ^M представляет возврат каретки (“carriage return”) или CR , а потому нам требуется быть крайне внимательными при обмене файлами между WSL (Unix) и Windows чтобы убеждаться в правильности трансляции окончаний строк.

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

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

 > git config --global core.autocrlf true 

После выполнения изменений глобальной конфигурации, демонстрируемой на Рисунке 8-5, наш специальный символ, вводимый по причине “возврата каретки” предстаёт исчезающим на стороне Linux, в то время как мы применяем тот же самый файл Windows. Этот файл всё ещё содержит символы CR/LF , но git понимает, что ему следует преобразовывать их только в символы конца строки LF .

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

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

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

Если код репозиториев клонируется через HTTPS и вы хотите сделать полномочия неизменными и в Windows, и в WSL, тогда вам требуется выполнить следующие шаги для настройки помощника полномочий Windows:

  1. В Windows откройте консоль PowerShell и наберите приводимую ниже команду, завершая ввод нажатием на Enter:
 PS > git config --global cretential.helper wincred 
 > git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-redential-wincred.exe" 

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

Читайте также:  Linux zip many files

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

Терминал Windows

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

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

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

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

  1. Пройдите в меню Пуск в нижнем левом углу экрана Windows 10 и отыщите “Microsoft Store”, после чего запустите его, как это показано на Рисунке 8-7.

Запуск Microsoft Store

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

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

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

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

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

  1. Запустите консоль PowerShell с полномочиями администратора.
  2. Чтобы проверить что политики установки в PowerShel не помешают нашей установке выполните такую команду:
 PS > Set-ExecutionPolicy Bypass -Scope Process -Force 
 PS > $URL = 'https://chocolatey.org/install.ps1' PS > $Script = (New-Object System.Net.WebClient).DownloadString($URL) PS > Invoke-Expression -Command $String 

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

 PS > choco install microsoft-windows-terminal 

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

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

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

Рисунок 8-12

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

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

 < "guid": "", "hidden": false, "name": "Ubuntu-18.04", "source": "Windows.Terminal.Wsl" > 

Мы также можем настроить этот файл settings.json для запуска индивидуально задаваемого аргумента в командной строке WSL, например, тот который запускает в WSL Ubuntu 18.04, от имени пользователя “root”, что демонстрирует нам Рисунок 8-13. Настройки Терминала Windows сохраняются в файле settings.json , который можно найти в %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json .

 < "guid": "", "hidden": false, "name": "Ubuntu-18.04", "commandline": "wsl.exe -u root -d ubuntu-18.04" > 

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

Читайте также:  Linux добавить пользователя группу root

Рисунок 8-13

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

Рисунок 8-14 показывает, что вы также можете установить каталог запуска для своего дистрибутива Linux и соответствующую иконку сеанса предоставляя пути, как это приводится в следующем примере:

 < "guid": "", "hidden": false, "name": "Ubuntu-18.04", "commandline": "wsl.exe -d ubuntu-18.04", "startingDirectory" : "D:\\Workspace\\", "icon" : "D:\\icon.jpg" > 

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

Рисунок 8-14

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

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

Visual Studio Code (VSCode)

Visual Studio Code это облегчённый, кроссплатформенный редактор кода, который может запускаться в Windows, macOS, and Linux. VSCode поддерживает широкое разнообразие языков программирования, таких как Python, C#, C++, PHP и Java и является расширяемым через те расширения, которые можно устанавливать для расширения имеющихся в этом редакторе кода возможностей.

Самый первый шаг состоит в выгрузке и установке 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.

Рисунок 8-15 демонстрирует как взаимодействуют Windows и WSL при помощи Visual Studio Code.

Рисунок 8-15

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

Источник

Оцените статью
Adblock
detector