Я пытаюсь настроить Tower (git client) для запуска оболочки wsl bash. Я перепробовал множество вещей, но, похоже, это не предназначено.

Что я пробовал:

command:     c:\windows\system32\wsl.exe
parameters:  bash -i

command:     c:\windows\system32\bash.exe
parameters:  -i

command:     c:\windows\system32\cmd.exe
parameters:  /c "bash -i"

command:     c:\windows\system32\bash.exe
parameters:  -i

command:     c:\WINDOWS\System32\windowspowershell\v1.0\powershell.exe
parameters:  wsl bash -i

command:     cmd 
parameters:  /c start start bash -i

command:     C:\Windows\SysWOW64\cmd.exe
parameters:  /c start start bash -i

Все это просто всплывает в окне консоли на очень короткое время, а затем возвращается в Tower.

Большинство этих команд работают из окна проводника ...

Windows CMD

2 ответа2

2

Чтобы запустить 64-битный исполняемый файл из 32-битного процесса, например, запустить wsl.exe из Tower, вам нужно использовать перенаправитель файловой системы sysnative .

В этом случае запустите: %windir%\sysnative\wsl.exe

Вы можете проверить это, сначала запустив 32-разрядную версию Cmd, выполнив следующее из диалогового окна «Выполнить» (Windows + R): %windir%\SysWoW64\cmd.exe

Затем внутри экземпляра Cmd вы можете выполнить следующее:

%windir%\sysnative\wsl.exe

Теперь вы должны увидеть запущенный 64-битный WSL, подключенный к тому же экземпляру консоли:

0

Похоже, что это обходной путь делает свое дело:

command:    C:\WINDOWS\sysnative\WindowsPowerShell\v1.0\powershell.exe
parameters: wsl bash

Он запускает 64-битный экземпляр PowerShell для загрузки подсистемы Windows для Linux.

Смотрите также:


Альтернатива:

Другой вариант, который я нашел, - это использовать wsl-terminal, но, поскольку это зависит от стороннего терминала и целого ряда других зависимостей, он не будет его использовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .