【问题标题】:How to remote control Vagrant installed on Windows, within Linux Subsystem?如何在 Linux 子系统中远程控制安装在 Windows 上的 Vagrant?
【发布时间】:2019-11-05 06:35:07
【问题描述】:
根据Vagrant的文档,主题WSL and Vagrant是高级的。
你需要在 Linux 上安装 Vagrant,因为:
而 Vagrant Windows 提供的 vagrant.exe 可执行文件
可以从 WSL 中访问安装,但它不会运行
正如预期的那样。
但我不想主要在 Linux 中运行 Vagrant。我想使用安装在我的 Windows 10 主机上的 Virtual Box。但我不想离开 Linux bash,只是为了启动 Vagrant。
有没有办法从 WSL 中远程控制 Vagrant?
【问题讨论】:
标签:
windows
vagrant
windows-subsystem-for-linux
【解决方案1】:
确实,$ vagrant.exe 会导致意外行为,因为 Vagrant(安装在 Windows 上)无法处理 unix 样式的路径。
但真正有效的是:
- 当你在 bash 中时,输入
$ cmd.exe
- 执行你的 Vagrant 命令,例如:
C:\> vagrant up
- 然后返回 bash,使用
C:\> exit
幸运的是cmd.exe 有选项,可以让我们通过 cmd.exe 调用 Vagrant:
$ cmd.exe /c vagrant up
这将启动 Windows 的命令行,执行命令,然后返回 bash。
更酷的是,当您将其添加到您的 ~/.bashrc 文件中时:
alias cmd='cmd.exe'
alias vagrant='cmd /c vagrant'
您可以在 WSL bash 中使用本机 vagrant 命令(在 Windows 中执行):
$ vagrant up
对我来说,这就像魅力。
注意:我已将硬盘驱动器的根挂载路径从 /mnt/c 更改为 /c。当我输入cmd.exe 时,我将在同一个目录中结束。 Windows 确实转换了路径。但 Windows 无法处理,例如~。然后,Windows 将在 C:\Windows\System32 中结束