在 Windows10 上使用 VirtualBox 的 Vagrant:在您的 PATH 上找不到“Rsync”

Posted

技术标签:

【中文标题】在 Windows10 上使用 VirtualBox 的 Vagrant:在您的 PATH 上找不到“Rsync”【英文标题】:Vagrant with VirtualBox on Windows10: "Rsync" could not be found on your PATH 【发布时间】:2016-03-14 13:30:17 【问题描述】:

我在 Windows 7 系统上使用 Vagrant 有一段时间了。现在我有一台装有 Windows 10 的新 PC。我安装了 Oracle Virtual Box 和 Vagrant,并尝试使用 vagrant up 命令启动一台机器。 Vagrantfile 与我在 Windows 7 系统上使用的文件相同。 这是 Vagrantfile 的内容:

Vagrant.configure(2) do |config|
config.vm.box = "debian/jessie64"

config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--memory", "768"]
end
config.vm.provision :shell, path: "bootstrap.sh"

config.vm.network :private_network, ip: "172.27.146.17"
config.vm.hostname = "www.delevensstijl.hst1.nl"
config.hostsupdater.aliases = ["www.thelifestylemethod.hst1.nl"]

end

我得到的错误:在您的 PATH 中找不到“rsync”。确保 rsync 已正确安装在您的系统上并且在 PATH 上可用。

既然我使用了 Virtualbox,为什么 Vagrant 还要寻找 rsync? 如何解决此错误?

【问题讨论】:

Stefan,接受一个显然对很多人有帮助并回答你的问题的答案将是社区友好的 【参考方案1】:

我在另一个论坛发现本地 Vagrant 目录通过 rsync 挂载为“/vagrant”。这是在盒子本身中设置的,您可以通过打开来检查

C:\Users\your_username\.vagrant.d\boxes\debian-VAGRANTSLASH-jessie64\8.2.2\virtualbox\Vagrantfile

看看设置

  config.vm.synced_folder \
    ".",
    "/vagrant",
    type: "rsync"

为了解决这个问题,我在本地 Vagrantfile 中添加了以下行

  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"

错误已解决

【讨论】:

好建议 +1,我在 centos/7 上遇到了同样的问题,它在客户机上使用了不同的路径,所以你本地 Vagrantfile 中的等效行是 @987654324 @ centos/7 镜像的最新版本将默认同步目录更改为 /vagrant,因此您需要更新上面@TillKuhn 评论中显示的文件夹引用config.vm.synced_folder ".", "/vagrant", disabled: trueseven.centos.org/2016/08/… 更新盒子后可能会出现此问题。 Vagrantfile 文件从当前运行框更改。【参考方案2】:

在 Windows 7 上使用 cent/7 时,我已经解决了这个问题,如下所示。

选中 C:\Users[username]\.vagrant.d\boxes\centos-VAGRANTSLASH-7\1602.02\virtualbox\Vagrantfile 中的 synced_folder 复选框

config.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync"   

覆盖项目 Vagrantfile 中的定义以进行目录映射。

config.vm.synced_folder ".", "/home/vagrant/sync", type: "virtualbox"  

我想盒子可能是在非Windows系统上准备的,这种情况可以在很多盒子上发生,例如fedora/23-cloud-base。

【讨论】:

【参考方案3】:

看起来像一个错误。你可以举报here。但是您的错误似乎已经报告为issue 6631。

尽管如此,您可以尝试将rsync 添加到您的PATH 并检查结果。您可以通过 2 种方式做到这一点:

    安装 Cygwin,然后从其 Cygwin 终端启动 vagrant up 下载解压cwRsync

【讨论】:

我在最新的 debian/jessie vagrant 框中错过了这个注释:切换到 rsync 作为同步文件夹的默认方法,因为 vboxfs 需要 contrib 或非免费包所以,更新到新版本的 debian /jessie 是我需要 rsync 的原因 我在 CentOS 官方盒子 (centos/7) 上也有同样的错误信息。当 Cygwin 向您显示要安装的其他软件包列表时,安装程​​序中有 rsync 软件包。 @VladislavRastrusny 试试 bento/centos-7.1,它预装了 VirtualBox 来宾添加 @大卫。是的,切换到它,直到原生图像被修复。如果有的话;)【参考方案4】:

首先,这不是错误,这是 Windows 上的预期行为,因为 Windows 上不存在 rsync。

如果您遇到此问题并且想使用 rsync 作为同步文件夹的机制,您应该:

    从https://mingw-w64.org/doku.php/download/cygwin 下载 Cygwin 使用 rsync + openssh 模块安装 Cygwin。这很重要,因为它们基于 Window(您可以在 Select packages 阶段的安装过程中选择要安装的软件包) 将 x:\cygwin\bin(其中“x”是您安装 cygwin 发行版的驱动器)添加到 SYSTEM PATH。 重新启动您的 PC(在 Windows 10 上不需要)

就是这样。

感谢您的关注,祝您有美好的一天:-)

【讨论】:

如果你已经安装了 cygwin 或 mobaxterm 最有帮助的答案! mobaxterm 默认安装,添加路径为C:\Users\<username>\Documents\MobaXterm\slash\bin。对我来说,将其添加到 PATH 就足够了,不需要 SYSTEM PATH。【参考方案5】:

在带有来自 Atlas 的 centos/7 盒子的 Windows7 上使用 Vagrant/VirtualBox (5.06):在路径上找不到 rsync。所以,我按照建议通过 cygwin 安装(还有其他东西要安装,包括 openssh)。没有喜悦。尝试将共享文件夹配置更改为“virtualbox”而不是“rsync”。没有喜悦。哦,忘了检查 VirtualBox 来宾添加是否在框中:它们不是。 Rsync 工作得更好,但最后仍然阻塞(无法 chdir 到共享文件夹的源目录)。但是,“type: virtualbox”配置确实有效!

所以数据点是:在 windows 7 上添加了访客添加和共享文件夹类型设置为“virtualbox”(覆盖框设置)的 centos/7 有效。

在 MacOS 上开箱即用(无更改,无访客添加)。

【讨论】:

【参考方案6】:

我在 Windows 10 上遇到了同样的问题。删除以下行帮助我解决了问题

目录:C:\Users\xxxxxxxxxxxxx.vagrant.d\boxes\manageiq-VAGRANTSLASH-euwe\5.1.0\virtualbox

文件:VagrantFile

要删除的行:config.vm.synced_folder "."、"/home/vagrant/sync",输入:"rsync"

接下来的步骤:

保存文件 打开cygwin终端 转到流浪者目录 运行“vagrant up”

【讨论】:

想补充一点,更新 vagrant box 后,当 vagrant 想要启动更新的版本时,Rath 提到的路径中的 Vagrantfile 是 box 自带的(因此可能包含不兼容的值你的环境)。此外,您可以简单地将值从 rsync 更改为 virtualbox(如果 virtualbox 是您的 VM 引擎)。【参考方案7】:

我能够使用来自的另一个 bos 解决此问题 C:\Usersyour_username.vagrant.d\boxes\box\subfolder\virtualbox\Vagrantfile

并添加

# Load include vagrant file if it exists after the auto-generated
# so it can override any of the settings

include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)

load include_vagrantfile if File.exist?(include_vagrantfile)

【讨论】:

【参考方案8】:

我已经尝试了上面的建议,但没有帮助。我使用 Windows 7,流浪者 1.9.1 作为 vm box,我使用 centos 7 没有安装来宾添加。

vm.box = "centos/7"

要解决此问题,请将 clean 'vm.box' 更改为带有预安装来宾添加的框,例如

vm.box = "geerlingguy/centos7"

还要确保没有安装 vbguest 插件,因为出现另一个错误

vagrant plugin list

vagrant plugin uninstall vagrant-vbguest

【讨论】:

以上是关于在 Windows10 上使用 VirtualBox 的 Vagrant:在您的 PATH 上找不到“Rsync”的主要内容,如果未能解决你的问题,请参考以下文章

如何解决vbox在win10上建立host-only网络失败的问题

Windows使用Vagrant和Virtual Box安装centos

debian桌面环境下利用wine怎么运行exe?求详细图解

docker machine

在 Windows 10 上使用 VS Code 在 iphone 上调试颤振

在 Windows 10 上的 WSL2 上使用 JDK 的正确方法是啥?