我有一个问题,我无法vagrant up
在 cygwin 中执行此操作,因为 cygwin 无法理解C:\
vagrantfile 使用的非 POSIX 样式路径。
我用git-bash
vagrant 来启动,因为它可以理解非 POSIX 路径。为了让我的生活更加简单,我创建了 Windows.lnk
文件来在 git-bash 中启动 bash 脚本,从而启动我的 ssh 代理并启动 vagrant。
我希望它更进一步,在 cygwin 中使用 bash 别名来创建一个别名,vagrant up
该别名将启动我的vagrant-up.lnk
等,这反过来又会启动 git-bash 会话并最终启动我的 vagrant 实例。
但是,我遇到了一个奇怪的问题,我无法.lnk
使用 cygwin 或 git-bash 启动文件。
~/Desktop
$ cygstart vagrant-up.lnk
Unable to start 'vagrant-up.lnk': The specified path was not found.
认为这是一个路径问题,我尝试给出完整路径:
~/Desktop
$ cygstart -o /cygdrive/c/Documents\ and\ Settings/user/Desktop/vagrant-up.lnk
Unable to start 'C:\Documents and Settings\user\Desktop\vagrant-up.lnk': The operating system denied access to the specified file.
错误消息在 git-bash 中似乎更有用
MINGW64 /c/Users/user/Desktop
$ ./vagrant-up.lnk
bash: ./vagrant-up.lnk: cannot execute binary file: Exec format error
我在 google 上搜索了“bash 无法执行二进制文件”错误,但只找到了针对错误架构编译的 *nix 实用程序的结果(例如 x86 上的 AIX 等)
根据 Timothy Martin 的建议,我也尝试了这个,但没有成功:
$ cygstart /cygdrive/c/Users/user/Desktop/vagrant-up.lnk
Unable to start 'C:\Users\user\Desktop\vagrant-up.lnk': The specified path was not found.
有趣的是,它在此错误消息中使用了 Windows 样式的路径,但我不知道如何将该事实转化为问题的解决方案。
在vagrant-up.lnk
、Target:
是
"C:\Program Files\Git\git-bash.exe" -l "C:\cygwin\home\user\vagrant\scripts\vagrant-up.git-bash"
和Start in:
是 中"C:\Program Files\Git"
。
我需要做什么才能.lnk
从 cygwin 启动这些文件?当我在 Windows 中双击它们时,它们运行得很好。