What I did:
- Created a new Linux machine in Device Manager like this:
- Clicked **Launch** -> **192.168.1.50**
Expected behavior:
- Unreal build an application for a Linux machine
- Unreal established ssh connection to the Linux machine
- Unreal deploys the application to a Linux machine
- Unreal runs the application on a Linux machine
What happened:
- Unreal has built an application for a Linux machine
- Unreal tried to establish an ssh connection to the Linux machine but failed
- Unreal automation tool has thrown an unknown error (code: 255)
Why I think this happened:
- Unreal constructed a cmd command
cmd.exe /c "echo y | C:\Program Files\Epic Games\UE_4.22\Engine\Extras\ThirdPartyNotUE\putty\PLINK.EXE -ssh -t -l linux_username -pw password 192.168.1.50 echo All Ok"
, which had failed due to spaces in the path PLINK.EXE - CMD thought that
C:\Program
is already a path to an executable and everything else are just arguments
What can be done theoretically:
- Unreal automation tool should construct a different command:
C:\WINDOWS\system32\cmd.exe /c 'echo y | "C:\Program Files\Epic Games\UE_4.22\Engine\Extras\ThirdPartyNotUE\putty\PLINK.EXE" -ssh -t -l linux_username -pw password 192.168.1.50 echo All Ok'
- Somewhere should be a config file, where the path to a PLINK.EXE program can be specified
Info:
- The editor is running on 64-bit Windows 10
- Unreal version: 4.22
- Deploying to a Linux machine on a local network
- Linux machine runs 64-bit Antergos
- Linux kernel: 5.1.4-arch1-1-ARCH
- SSH manually connects trough PowerShell
Logs:
- [Roaming/Unreal Engine/AutomationTool/Logs/C+Program+Files+Epic+Games+UE_4.22/Log.txt][3]
- [Roaming/Unreal Engine/AutomationTool/Logs/C+Program+Files+Epic+Games+UE_4.22/cmd-2019.05.26-17.22.07.txt][4]