Vagrant सिंक किए गए फ़ोल्डर केस संवेदी नहीं हैं


10

हमारे वेब स्टैक के लिए, हम एक Windows सर्वर से CentOS में जा रहे हैं। विकास को सुविधाजनक बनाने के लिए, हम स्थानीय रूप से CentOS VM को चलाने के लिए Vagrant का उपयोग कर रहे हैं। हम देवों के सिंक किए गए फोल्डर्स फ़ीचर का उपयोग कर रहे हैं ताकि देवता अपने मेजबान मशीन पर अपने पसंदीदा आईडीई का उपयोग कर सकें, लेकिन हम यह देख रहे हैं कि इस सेटअप से एक महत्वपूर्ण विशेषता गायब है: फ़ाइल सिस्टम केस संवेदनशीलता।

VM के अंदर सिंक किया गया फ़ोल्डर जाहिरा तौर पर होस्ट के फाइल सिस्टम के गुणों को लेता है, इसलिए यदि मैं विंडोज मशीन या OSX से विकसित हो रहा हूं, तो फाइल सिस्टम संवेदनशील नहीं है। के रूप में हमारे उत्पादन सर्वर शुद्ध CentOS हो जाएगा, और इसकी फाइल सिस्टम यह एक बड़ा मुद्दा है जाएगा मामले के प्रति संवेदनशील हो।

केस संवेदनशीलता एक मुख्य कारण है जो हम एक स्थानीय वीएम रखना चाहते थे। हम इसे रोकना चाहते हैं "यह मेरी मशीन पर काम करता है!"

कुछ वर्कअराउंड जिन्हें हमने माना या आज़माया है:

  • वीएसएम के स्थान के लिए वीसेंट शेयर से सिंक करने के लिए lsyncd का उपयोग करें जो संवेदनशील है
    • होस्ट पर फ़ाइलों को अपडेट करना VM में उन घटनाओं को उत्पन्न करने के लिए प्रतीत नहीं होता है जो lsync को सुनता है
  • होस्ट पर केस-संवेदी विभाजन करें
    • (विंडोज के लिए काम नहीं करता है)
  • सांभर का प्रयोग करें
    • यह एक विकल्प हो सकता है, लेकिन हमने अभी तक इसे वीटो नहीं किया है।

क्या कोई बेहतर तरीका है? ध्यान दें कि हमारे पास विंडोज, ओएस एक्स और उबंटू का उपयोग करने वाले डेवलपर्स हैं, और समाधान को हर जगह काम करने की आवश्यकता है।


अच्छा सवाल है, लेकिन एसएफ के लिए भी विकास-उन्मुख मुझे लगता है - आपके पास स्टैक ओवरफ्लो पर बेहतर भाग्य हो सकता है, प्रवास के लिए झंडी दिखा दी है :)
क्रेग वाटसन

1
ईमानदारी से मुझे लगता है कि यह एसओ पर नहीं है क्योंकि यह तथ्य यह है कि यह विकास के लिए काफी हद तक सारहीन है; सवाल फाइलसिस्टम केस-सेंसिटिविटी के बारे में है क्योंकि यह आवारा मेहमानों और मेजबानों से संबंधित है।
Phoebus

जवाबों:


6

मैंने अपने प्रोजेक्ट फ़ोल्डर में एक विरल डिस्क छवि बनाकर OS X पर समस्या के आसपास काम किया और इसे केस सेंसिटिव होने के लिए स्वरूपित किया।

विरल छवि के बढ़ते जाने के बाद, मैंने उस पर अपना कोड स्थानांतरित कर दिया। फिर मूल "src" फ़ोल्डर को माउंट की गई छवि के सिम्लिंक / उर्फ ​​के साथ बदल दिया। इस तरह से साझा किया गया फ़ोल्डर अतिथि OS के अंदर केस संवेदी है।

निश्चित रूप से सबसे सुरुचिपूर्ण समाधान नहीं है, लेकिन यह तैनाती और विकास के माहौल के बीच की खाई को बंद कर देता है, यही वजह है कि मैंने पहले स्थान पर वैग्रेंट का उपयोग करना शुरू कर दिया।

शायद एक समान वर्कआउट उबंटू और विंडोज के लिए भी काम कर सकता है?


विंडोज में केस-संवेदी फाइल सिस्टम नहीं है।
माइकल हैम्पटन

धन्यवाद जेसन। मैंने इस पर विचार किया, और यह मेरे मैक और ubuntu पर काम करेगा, लेकिन विंडोज के लिए काम नहीं करेगा। यह एक देव वातावरण बनाने के लिए एक मैनुअल कदम भी जोड़ता है, जिसे मैंने पूरी तरह से योनि / शेफ का उपयोग करके स्क्रिप्ट की उम्मीद की थी। हालांकि एक और विकल्प नहीं हो सकता है।
स्कॉट कोल्डवेल 20

2
केस संवेदनशीलता, MAMP का उपयोग करने के वर्षों के बाद, मैं वैग्रांत में बदल गया एक प्राथमिक कारण है, इसलिए मैं वास्तव में निराश हूं कि यह एक मुद्दा बना हुआ है। मुझे विश्वास नहीं हो रहा है कि यह वैग्रांत के डॉक्स में अधिक स्पष्ट रूप से नहीं बताया गया है।
जेसन सुवे

3
@JasonSuave यह समस्या वास्तव में वर्चुअलबॉक्स के साथ है और इसका उपयोग मॉग के लिए करता है, वैग्रंट नहीं। Vagrant केवल VirtualBox के आरोह को नियंत्रित कर रहा है। आपको VMWare पर अलग-अलग अनुभव हो सकते हैं ... मैंने कोशिश नहीं की है।
ब्रैड

0

मुझे एक ही मुद्दे का सामना करना पड़ा है और जिस तरह से मैंने इसे निपटाया है वह वीएम पर वर्क क्लोन के माध्यम से डायरेक्टरी में काम कर रहा है और सांबा शेयर को जोड़कर इसे विंडोज या मैक दोनों पर एक्सेस करने की ओर इशारा करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.