【问题标题】:Vagrant - Inline scripts on Windows throw '/bin/sh: sudo: command not found' errorVagrant - Windows 上的内联脚本抛出“/bin/sh: sudo: command not found”错误
【发布时间】:2016-08-24 19:40:09
【问题描述】:

我在 mac OS 上运行 Vagrant,设置 Windows 7 虚拟机。这是我目前正在使用的配置脚本:

 config.vm.provision "shell", inline: "C:/Users/IEUser/Downloads/launch.bat"

每次我这样做,或者实际上任何其他内联命令时,都会导致以下情况发生:

default: Running provisioner: shell...
default: Running: inline script
==> default: /bin/sh: sudo: command not found

无论我使用什么内联脚本,都会发生这种情况。基本上我想做的是在我做 vagrant up 或 vagrant provision 时在虚拟机上启动一个 .bat 文件,但我尝试过的都没有工作。

【问题讨论】:

    标签: vagrant sudo


    【解决方案1】:

    当您使用inline 选项时,vagrant 将期望脚本本身的内容。

    如果你引用一个现有的脚本你想使用path 选项

    要上传和执行的 shell 脚本的路径。它可以是相对于项目 Vagrantfile 的脚本或远程脚本

    请注意,它必须与项目 Vagrantfile 相关,因此来自您的主机,而不是 VM 中的相对

    假设您在宿主项目文件夹的script 目录中有launch.bat 文件,您将拥有

    config.vm.provision "shell", path: "script/launch.bat"
    

    【讨论】:

    • 嗨,这给了我同样的错误:==> 默认值:运行配置程序:shell ... 默认值:运行:/var/folders/bx/47f0tdgj6gx4t6vf3w6h05h40000gn/T/vagrant-shell20160824-7542- xhj7o5.bat ==> 默认:/bin/sh: sudo: command not found
    • 嗯 .. 这很奇怪我有 windows 框,它工作正常。如果您直接在 windows 中登录,您可以运行您的 bat 脚本吗?
    • 是的,直接从 Windows 运行完全没有问题。
    • 你能不能试试像config.vm.provision "shell", inline: "dir c:"这样的蹩脚的东西,看看它是否能按预期工作
    • 该命令的错误完全相同,所有 shell 内联内容都会导致相同的错误。我还在具有两个不同主机的 Windows 7 和 Windows 8 机器上尝试过这个,一个在 Mac OS 上运行,一个在 Windows 7 上运行。同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2015-09-29
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多