2014-09-05 9 views
5

चलाने वाले योनि के साथ विंडोज़ पर rsync का उपयोग कर मैं विंडोज 8.1 प्रो पीसी चल रहा है वेंट्रॉन और साइगविन के 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/ [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] 

मुझे लगता है कि यह कैसे यह करने के लिए निर्देशिका पथ बदल रहा है के साथ एक मुद्दा है सी/\ dev

उत्तर

1

मेरे परीक्षण से, यदि आप साइगविन का उपयोग कर रहे हैं, तो @ osroot25 द्वारा समाधान का उपयोग करें।

आप cwRsync का उपयोग करने और नहीं cygwin है रहे हैं, तो इसका कोई समाधान नहीं संपादन @Andrew मायर्स विवरण के रूप में स्रोत कोड को छोड़कर Vagrant का उपयोग कर रहा है। Vagrant v1.6.5 का उपयोग करके परीक्षण किया गया।

मेरा कामकाज जो मेरे लिए काम करता है वह है Vagrant को पूरी तरह से बाईपास करना और सीधे cwRsync का उपयोग करना। यह मेरे लिए काम करता है क्योंकि मैं ऐसे फ़ोल्डर को सिंक कर रहा हूं जो शायद ही कभी बदलता है। मैं इसे एक दिन में कुछ बार बदल सकता हूं (इसलिए मुझे हर बार नीचे चरण 2 याद रखना होगा), लेकिन फिर मैं बिना किसी बदलाव के सप्ताह (या महीने) जाता हूं। याद रखें कि cwRsync का उपयोग करने के लिए आपको cwrsync.cmd स्क्रिप्ट को संपादित और उपयोग करना होगा। Rsync.exe आदेश को सीधे या अपने पथ में जोड़कर इसे एक्सेस करने का प्रयास विफल हो जाएगा। चरण 1:

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

चरण 2:: मैं cwrsync.cmd के अंत में निम्नलिखित पंक्ति (स्थापित फ़ोल्डर में) जोड़ा मैं एक अलग cmd विंडो खुली है कि मैं cwrsync.cmd का उपयोग कर चला पूरा रास्ता। फिर यदि मुझे वीएम पर परिवर्तनों को सिंक करने की आवश्यकता है, तो मैं उस विंडो को सक्रिय करता हूं, अप-तीर, लौटाएं और अपडेट करना तत्काल है!

ENV संशोधित करना @ osroot25 द्वारा cygwin ठीक स्थापित करने के लिए cwRsync साथ काम नहीं करता, क्योंकि जब आप cygwin का पता लगाने के लिए मजबूर, "आवारा ssh" कमांड काम नहीं करेगा क्योंकि यह की आवश्यकता है cygwin में cygpath आदेश है, जो आप जीता ' टी है, तो आप वीएम में एसएसएच नहीं कर सकते हैं।ठीक है आप अगर आप सभी सही विकल्पों के साथ सीधे ssh कमांड का उपयोग कर सकते हैं।

2

इसे ठीक करने के लिए एक हैकी तरीका है (वैसे भी मेरे लिए काम किया) जहां आपको

बदलना है
hostpath = Vagrant::Util::Platform.cygwin_path(hostpath) 

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

लाइन 43 पर C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-[VERSION]\plugins\synced_folders\rsync\helper.rb

यह 1.5.x के लिए अलग है में करने के लिए, आप इसके बारे में यहाँ इस सूत्र पढ़ सकते हैं: https://github.com/mitchellh/vagrant/issues/3230

मैं, हालांकि, हो जाएगा यह स्वीकार करने वाला पहला है कि कोर को संपादित करना आदर्श से बहुत दूर है।

8

जैसे मैं GitHub-अंक में टिप्पणी की है, तो निम्न अपने Vagrantfile में लाइन सबसे निश्चित रूप से ठीक कर देंगे आपकी समस्या

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

इस के बाद से अपने Vagrantfile में स्थानीय है, स्रोत फ़ाइलें अछूता रखा जा सकता है

3

वर्कअराउंड: सिग्विन टर्मिनल पर ln -s /cygdrive/c/ /c

संबंधित मुद्दे