Как организовать языки программирования и библиотеки в WSL и Windows10

#windows-subsystem-for-linux

Вопрос:

Как мне избежать установки одних и тех же языков программирования как в WSL, так и в Windows10?

Я подумываю об использовании WSL в качестве рабочей области разработчика. Однако я понял, что мне нужно будет установить Node.js, Python, create-react-app и так далее в WSL, хотя в моей Windows 10 они уже установлены.

Было бы полезно, если бы вы могли дать мне несколько советов.

Спасибо.

Ответ №1:

В какой-то степени это зависит от того, каким типом разработки вы занимаетесь. Учитывая ваши примеры языков/инструментов, я собираюсь предположить, что большая часть вашей разработки не зависит от платформы, веб-разработки и т. Д.

Моя рекомендация-пойти ва-банк на WSL и установить версии используемых вами инструментов для Linux (за некоторыми примечательными исключениями, описанными ниже).

Удаление версий Windows рекомендуется, но не является строго необходимым. Я рекомендую удалить, потому что я продолжаю видеть ряд вопросов на сайтах стека, где становится очевидным, что версия Node или Python для Windows вызывается изнутри WSL. Вполне вероятно, что какой-либо инструмент, такой как nvm или аналогичный, попытался добавить узел Windows или расположение Python к пути Linux.

Это вызывает проблемы, так как узел версий Windows и Python понимают пути и процессы Windows. Когда вы вызываете их из оболочки Linux в WSL, оболочка/ОС использует, конечно, версии Linux. И Windows Python просто не поймет что-то подобное /mnt/c/Projects . Это необходимо C:Projects . Вы можете обойти это с помощью таких утилит, как wslpath (автоматически устанавливаемые в некоторых дистрибутивах WSL, устанавливаемые во всех других), или вы можете просто вручную настроить путь. Но… зачем переживать из-за хлопот, если в этом нет необходимости.

Просто используйте версии Linux с соответствующими путями и инструкциями Linux. Большинство инструментов разработки, учебных пособий, инструкций и т. Д. Будут «по умолчанию» в документе Linux. Как правило, он будет более полным, более современным и т. Д.

И, конечно, опыт командной строки Linux (субъективно, конечно) намного лучше, чем PowerShell. Не поймите меня неправильно, мне нравится PowerShell, но мне нравится PowerShell еще больше, когда я вызываю его через WSL ( powershell.exe или pwsh.exe ), так как я могу воспользоваться такими тонкостями Linux, как less (или bat ), jq , и многими другими.

Не говоря уже о том, что нет предостережений WSL, к которым вам нужно привыкнуть. Будьте готовы столкнуться с несколькими проблемами здесь и там (отсутствие поддержки Systemd, разрешений, файловых систем, inotify), но у большинства из них есть обходной путь, который вы обычно найдете здесь в стеке (Переполнение стека, Спросите Ubuntu, Unix и Linux и/или суперпользователя), если вы ищете.

И для тех «заметных исключений», о которых я упоминал, я рекомендую установить:

  • Терминал Windows (доступен в магазине Microsoft), который обеспечит улучшенный интерфейс терминала для WSL.
  • Версия кода Visual Studio для Windows-я видел вопрос от кого-то здесь, кто пытался установить версию Linux. В этом просто нет необходимости. Microsoft проделала большую работу по интеграции версии VSCode для Windows с WSL. Просто установите пакет расширений «Удаленная разработка», который включает расширение «Remote — WSL».