2014-09-05 40 views
5

Çalışan vagrant ile Windows üzerinde rsync kullanımı Vagrant ve cygwin rsync çalışan Windows 8.1 Pro pc kullanıyorum.CoreS VM

config.vm.synced_folder "../sharedFolder", "/vagrant_data", type: "rsync" 

Ve vagrant up yürütmek zaman aşağıdaki hatayı alıyorum:

ben gibi konfigüre am

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/ [email protected]:/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] 

Ben nasıl dizin yolunu değiştiriyor ile ilgili bir sorun olduğunu varsayalım/c/dev yerine c: \ dev

cevap

1

Testlerimden, eğer cygwin kullanıyorsanız, @ osroot25 ile çözümü kullanın.

Eğer cwRsync kullanarak ve değil cygwin var ise, @ Andrew Myers ayrıntıları gibi kaynak kod düzenleme dışında serseri kullanarak geçici bir çözüm yok yoktur. Vagrant v1.6.5 kullanılarak test edildi.

Benim için geçerli olan geçici çözümüm, Vagrant'ı tamamen atlamak ve doğrudan cwRsync kullanmaktır. Bu benim için çalışıyor çünkü neredeyse hiç değişmeyen bir klasörü senkronize ediyorum. Bir günde birkaç kez değiştirebilirim (bu yüzden her seferinde adım 2'yi hatırlamam gerekir), fakat sonra değişiklik yapmadan haftalar (ya da aylar) gidiyorum. CwRsync'i kullanmak için cwrsync.cmd komut dosyasını düzenlemeniz ve kullanmanız gerektiğini unutmayın. Doğrudan rsync.exe komutuna erişmeye çalışırken veya yolunuza ekleyerek başarısız olur. Adım 1:

rsync -re "ssh -p 2222" /cygdrive/b/VCS/packages/ [email protected]:packages --exclude ".git/"

Adım 2: I (yüklü klasöründe) cwrsync.cmd sonuna aşağıdaki satırı eklendi I kullanılarak cwrsync.cmd çalıştırmak açık ayrı cmd pencere tam yol. Daha sonra VM üzerinde değişiklik yapmayı senkronize etmem gerekirse, o pencereyi, yukarı-oku,'u döndürürüm ve güncellemeyi anında etkinleştiririm! o Eğer 'kazandı cygwin içinde cygpath komutu, gerektirdiğinden cygwin algılama zorlamak zaman çünkü cwRsync ile çalışmıyor @ osroot25 tarafından cygwin düzeltmeyi ayarlamak için ENV değiştirme

, "serseri ssh" komutu çalışmaz var, bu yüzden VM'ye ssh yapamazsınız.Peki, ssh komutunu doğrudan doğru seçeneklerle kullanırsanız yapabilirsiniz.

2

Bunu düzeltmek için (benim için çalıştım) düzeltmek için bir yol var:

hostpath = Vagrant::Util::Platform.cygwin_path(hostpath) 

C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-[VERSION]\plugins\synced_folders\rsync\helper.rb

Bu 1.5.x için farklı hat 43 üzerinde

hostpath = "/cygdrive" + Vagrant::Util::Platform.cygwin_path(hostpath) 

için, bu konuda burada Konuyu okuyabilir: https://github.com/mitchellh/vagrant/issues/3230

Ben, ancak, olacak Çekirdeği düzenlemek için ilkini ideal olmaktan çok uzak.

8

bu yana

ENV["VAGRANT_DETECTED_OS"] = ENV["VAGRANT_DETECTED_OS"].to_s + " cygwin"

sizin Vagrantfile yerel senin sorunun kesinlikle çözecektir sizin Vagrantfile çizgi izleyen, github-sayısında yorumladı gibi, kaynak dosyaları bakir tutulabilir

3

Bu geçici çözüm: sadece ln -s /cygdrive/c/ /c cygwin terminali üzerinde