我目前正在评估 MobaXterm作为我当前在 Windows7 机器上安装的普通 Cygwin 的替代品。我遇到的一件事是运行“gradle”。执行时我总是得到 p>
bash: applet not found
其他人在移动设备和路由器上的命令也有类似的问题,例如:
- http://forum.xda-developers.com/showthread.php?t=169113
- http://comments.gmane.org/gmane.linux.busybox/35809
不知道这是如何组合在一起的,但大多数解决方案都是指更改符号链接(symbolic link)或复制底层 shell 的可执行文件。有人知道 gradle 对 fork worker/deamons 和类似东西的环境依赖性,甚至有关于 mobaXterm cygwin 环境和普通 cygwin 环境之间差异的详细信息吗? Cygwin 和 MobaXterm 在我的机器上使用相同的 .bash_profile。
感谢输入! 干杯
最佳答案
经过MobaXterm客服的热心回复,我找到了解决办法。问题是由于 MobaXterm 的大部分核心命令(ls、cat、kill 等)都是基于 busybox 构建的,它返回提到的错误语句“bash:applet not found”。 (可以使用命令 'busybox bash' 重现)。
根据 gradle 源代码,gradle unixStartScript.txt 具有以下脚本序言:
#!/usr/bin/env bash
我发现在 MobaXterm 中,env 命令由指向 busybox.exe 的符号链接(symbolic link)表示。这似乎在 gradle 启动脚本的实际 bash 命令之前得到遵循/解决。这导致
#!/usr/bin/busybox.exe bash
执行环境准备。
长话短说:要解决此问题,请将/bin/env.exe 设为/bin/busybox.exe 的硬链接(hard link),或者只需复制/bin/busybox.exe 并将其重命名为 Windows 中的 env.exe Explorer 让 gradle 最终在 MobaXTerm 中运行!
干杯 本
关于windows - bash:在 MobaXterm 中运行 gradle 时找不到小程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27223994/