Я пытаюсь настроить Tower (клиент git) для запуска оболочки 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
Все они просто на очень короткое время открывают окно консоли, а затем возвращают в Башню.
Большинство этих команд работают из окна проводника...
решение1
Чтобы запустить 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, работающую на том же экземпляре консоли:
решение2
Похоже, этот обходной путь сработает:
command: C:\WINDOWS\sysnative\WindowsPowerShell\v1.0\powershell.exe
parameters: wsl bash
Он запускает 64-разрядный экземпляр PowerShell для последующей загрузки подсистемы Windows для Linux.
Смотрите также:
Альтернатива:
Другой вариант, который я нашел, — это использоватьwsl-terminal
, но поскольку это зависит от стороннего терминала и целой кучи других зависимостей, лучше его не использовать.