我正在使用Windows 8.1 Pro pc运行vagrant和cygwin的rsync。
我正在配置:
config.vm.synced_folder "../sharedFolder", "/vagrant_data", type: "rsync"
当我执行vagrant up
时,我收到以下错误:
C:\dev\vagrantBoxes\coreOS>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'yungsang/coreos' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: core
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Rsyncing folder: /c/dev/vagrantBoxes/sharedFolder/ => /vagrant_data
There was an error when attempting to rsync a synced folder.
Please inspect the error message below for more info.
Host path: /c/dev/vagrantBoxes/sharedFolder/
Guest path: /vagrant_data
Command: rsync --verbose --archive --delete -z --copy-links --chmod=ugo=rwX --no-perms --no-owner --no-group --rsync-path sudo rsync -e ssh -p 2222 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/d
ev/null -i 'C:/Users/aaron.axisa/.vagrant.d/insecure_private_key' --exclude .vagrant/ /c/dev/vagrantBoxes/sharedFolder/ core@127.0.0.1:/vagrant_data
Error: Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
rsync: change_dir "/c/dev/vagrantBoxes/sharedFolder" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at /usr/src/ports/rsync/rsync-3.0.9-1/src/rsync-3.0.9/main.c(1052) [sender=3.0.9]
我认为它是如何将目录路径更改为/ c / dev而不是C:\ dev
的问题答案 0 :(得分:8)
ENV["VAGRANT_DETECTED_OS"] = ENV["VAGRANT_DETECTED_OS"].to_s + " cygwin"
因为它在您的Vagrantfile中是本地的,所以源文件可以保持不变
答案 1 :(得分:3)
解决方法:在cygwin终端上只有 <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Dropdown Link 1</a></li>
<li><a href="#">Dropdown Link 2</a></li>
<li><a href="#">Dropdown Link 3</a></li>
<li class="divider"></li>
<li class="dropdown dropdown-submenu"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown Link 4</a>
<ul class="dropdown-menu">
<li><a href="#">Dropdown Submenu Link 4.1</a></li>
<li><a href="#">Dropdown Submenu Link 4.2</a></li>
<li><a href="#">Dropdown Submenu Link 4.3</a></li>
<li><a href="#">Dropdown Submenu Link 4.4</a></li>
</ul>
</li>
</ul>
</li>
答案 2 :(得分:2)
有一种愚蠢的方法可以解决这个问题(无论如何都适用于我),你需要改变
hostpath = Vagrant::Util::Platform.cygwin_path(hostpath)
到
hostpath = "/cygdrive" + Vagrant::Util::Platform.cygwin_path(hostpath)
在C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-[VERSION]\plugins\synced_folders\rsync\helper.rb
与1.5.x不同,您可以在此处阅读此主题:https://github.com/mitchellh/vagrant/issues/3230
然而,我会首先承认编辑核心远非理想。答案 3 :(得分:1)
根据我的测试,如果您使用的是cygwin,请使用@ osroot25的解决方案。
如果您正在使用cwRsync并且不拥有cygwin,则除了将源代码编辑为@Andrew Myers详细信息外,没有使用Vagrant 的解决方法。使用Vagrant v1.6.5进行测试。
对我有用的解决方法是完全绕过Vagrant并直接使用cwRsync。这对我有用,因为我正在同步一个几乎没有变化的文件夹。我可能会在一天内改变它几次(所以我必须记住每次下面的第2步),但是我会花几周(或几个月)而不做任何改动。请记住,要使用cwRsync,您必须编辑并使用cwrsync.cmd脚本。尝试直接访问rsync.exe命令或将其添加到路径失败。第1步:我将以下行添加到cwrsync.cmd的末尾(在已安装的文件夹中):
rsync -re "ssh -p 2222" /cygdrive/b/VCS/packages/ vagrant@localhost:packages --exclude ".git/"
步骤2:我打开了一个单独的cmd窗口,我使用完整路径运行cwrsync.cmd。然后,如果我需要将更改同步到VM,我会激活该窗口,向上箭头,返回并立即更新!
修改ENV以通过@ osroot25设置cygwin修复不适用于cwRsync,因为当你强制进行cygwin检测时,&#34; vagrant ssh&#34;命令不起作用,因为需要 cygwin中的cygpath命令,你不会拥有,所以你不能ssh进入VM。如果你直接使用ssh命令和所有正确的选项,你就可以。