#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».