【问题标题】:Vagrant up gives 'cygpath' Vagrant was not found in pathVagrant up 给出 'cygpath' Vagrant 在路径中未找到
【发布时间】:2016-02-28 18:51:54
【问题描述】:

我已经安装了 Vagrant,Vagrant init 运行良好。当我现在运行 Vagrant 时,我得到了这个错误:

The executable 'cygpath' Vagrant is trying to run was not
found in the %PATH% variable. This is an error. Please verify
this software is installed and on the path.

我使用 cygwin 作为终端,我有 Windows 8,我已将 C:\cygwin64\bin 放在环境变量的 PATH 中。

我的问题是,为什么我在指定 cygwin bin 的路径后会收到此错误消息?

谢谢!

【问题讨论】:

  • 您是否检查过给定的路径是否在您的路径变量中?您是否尝试打印它以查看结果?
  • 你能在你的 Vagrantfile 中添加p ENV['PATH'] 并确保你的会话中使用的 PATH 是你设置的那个,如果你在那里添加,你应该看到C:\cygwin64\bin

标签: cygwin vagrant vagrant-windows


【解决方案1】:

我假设你已经安装了 Cygwin,只需将 cygwin 的路径(通常是 c:\cygwin\bin\cygwin.exe)添加到你的 shell %path% 变量中,你就可以开始了。

  • Ctrl-X => 系统 => 高级设置 => 变量
  • 重启你的 Powershell/Cmd-Window

【讨论】:

  • 路径是文件夹,不是可执行文件。正确的路径是以“\bin\”结尾的路径。
【解决方案2】:

我刚刚删除cygwin后遇到了同样的错误,发现答案不是重新安装它,而是简单地将它从%Path%中删除,这样Vagrant在启动时就不会搜索它。

因此,您可以打开控制面板 => 系统 => 高级系统设置 => 环境变量... 然后在 System Variables 下找到 Path,去掉所有对 cygwin 的引用。

重启你的shell,你就可以开始了。

【讨论】:

  • 这实际上是我的问题。我认为这可能是因为我过去安装了 Vagrant,或者是因为我的路径搞砸了。无论如何,在从 Vagrant 运行的路径中删除 cygwin 之后没有问题。
【解决方案3】:

我的想法是创建一个小包装脚本,vagrant.bat:

@setlocal
@set PATH=C:\HashiCorp\Vagrant\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
@vagrant %*
@endlocal

vagrant.bat 文件位于我的PATH 的第一个目录中。

【讨论】:

    【解决方案4】:

    我突然遇到了同样的问题,发现由于某种原因 Cygwin 已从系统中删除(我是从 git bash shell 运行的)。我重新安装了 Cygwin,然后它又可以工作了。

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多