W folderach synchronicznych Vagrant nie rozróżniana jest wielkość liter

10

W naszym stosie internetowym przechodzimy z systemu Windows Server do CentOS. Aby ułatwić rozwój, używamy Vagrant do lokalnego uruchamiania maszyn wirtualnych CentOS. Używamy funkcji Synchronizowanych folderów Vagrant, aby umożliwić deweloperom korzystanie z ich ulubionych IDE na ich hoście, ale okazuje się, że w tej konfiguracji brakuje jednej kluczowej funkcji: rozróżnianie wielkości liter w systemie plików.

Zsynchronizowany folder w maszynie wirtualnej najwyraźniej przyjmuje właściwości systemu plików hosta, więc jeśli programuję z komputera z systemem Windows, a nawet OSX, w systemie plików nie jest rozróżniana wielkość liter. To duży problem, ponieważ nasze serwery produkcyjne będą czystym CentOS, a system plików będzie rozróżniał wielkość liter.

Rozróżnianie wielkości liter jest jednym z głównych powodów, dla których chcieliśmy mieć lokalną maszynę wirtualną. Chcemy zapobiec „To działa na moim komputerze!”

Niektóre obejścia, które rozważaliśmy lub wypróbowaliśmy:

  • Użyj programu lsyncd, aby zsynchronizować udział Vagrant z lokalizacją w maszynie wirtualnej, która rozróżnia małe i duże litery
    • aktualizacja plików na hoście nie wydaje się generować zdarzeń na maszynie wirtualnej, których nasłuchuje lsync
  • Utwórz partycję z rozróżnianiem wielkości liter na hoście
    • (Nie działa w systemie Windows)
  • Użyj samby
    • może to być opcja, ale jeszcze tego nie sprawdziliśmy.

Czy jest lepszy sposób? Pamiętaj, że mamy programistów używających Windows, OS X i Ubuntu, a rozwiązanie musi działać wszędzie.

Scott Coldwell
źródło
Dobre pytanie, ale zbyt nastawione na rozwój dla SF. Myślę, że możesz mieć więcej szczęścia w stosie przepełnienia, zgłosiłeś się do migracji :)
Craig Watson
1
Szczerze mówiąc, myślę, że nie należy to do SO, ponieważ fakt, że dotyczy to rozwoju, jest w dużej mierze nieistotny; pytanie dotyczy rozróżniania wielkości liter w systemie plików, ponieważ odnosi się to do włóczęgów i gości.
phoebus,

Odpowiedzi:

6

Rozwiązałem ten problem w systemie OS X, tworząc rzadki obraz dysku w folderze projektu i sformatowałem go tak, aby rozróżniał wielkie i małe litery.

Po zamontowaniu rzadkiego obrazu przeniosłem na niego mój kod. Następnie zastąpiono oryginalny folder „src” dowiązaniem symbolicznym / aliasem do zamontowanego obrazu. W ten sposób w folderze współdzielonym rozróżniana jest wielkość liter w systemie operacyjnym gościa.

Zdecydowanie nie jest to najbardziej eleganckie rozwiązanie, ale wypełnia lukę między środowiskiem wdrażania a środowiskiem programistycznym, dlatego właśnie zacząłem używać Vagrant.

Być może podobne obejście może działać również w Ubuntu i Windows?

Jason Suave
źródło
Windows w ogóle nie ma systemu plików z rozróżnianiem wielkości liter.
Michael Hampton
Dzięki Jason. Zastanawiałem się nad tym i działałoby to na moim Macu i Ubuntu, ale nie działało na Windowsie. Dodaje również ręczny krok do stworzenia środowiska programistycznego, które miałem nadzieję napisać całkowicie przy użyciu vagrant / chef. Jednak może nie być innej opcji.
Scott Coldwell,
2
Wrażliwość na wielkość liter jest jednym z głównych powodów, dla których zwróciłem się do Vagrant po latach używania MAMP, więc jestem naprawdę rozczarowany, że problem nadal występuje. Nie mogę uwierzyć, że nie zostało to wyraźnie określone w dokumentach Vagrant.
Jason Suave,
3
@JasonSuave Problem dotyczy VirtualBox i tego, czego używa do montowania, a nie Vagrant. Vagrant kontroluje tylko wierzchowce VirtualBox. Możesz mieć różne doświadczenia z VMWare ... Nie próbowałem.
Brad
0

Zetknąłem się z tym samym problemem i sposobem, w jaki go rozwiązałem, jest uzyskanie katalogu roboczego na maszynie wirtualnej przez klon git i dodanie udziału Samba wskazującego na niego, dzięki czemu jest on dostępny zarówno w systemie Windows, jak i Mac.

Thazar
źródło