Le cartelle sincronizzate di Vagrant non fanno distinzione tra maiuscole e minuscole


10

Per il nostro stack Web, ci stiamo spostando da un server Windows a CentOS. Per facilitare lo sviluppo, stiamo utilizzando Vagrant per eseguire VM CentOS localmente. Stiamo usando la funzione Cartelle sincronizzate di Vagrant per consentire agli sviluppatori di utilizzare i loro IDE preferiti sul loro computer host, ma stiamo scoprendo che manca una caratteristica chiave di questa configurazione: la distinzione tra maiuscole e minuscole del file system.

La cartella sincronizzata all'interno della VM apparentemente assume le proprietà del file system dell'host, quindi se sto sviluppando da un computer Windows o persino OSX, il file system non fa distinzione tra maiuscole e minuscole. Questo è un grosso problema, poiché i nostri server di produzione saranno CentOS puri e il suo file system sarà sensibile al maiuscolo / minuscolo.

La distinzione tra maiuscole e minuscole è uno dei motivi principali per cui volevamo avere una VM locale. Vogliamo impedire "Funziona sulla mia macchina!"

Alcune soluzioni alternative che abbiamo considerato o provato:

  • Utilizzare lsyncd per sincronizzare dalla condivisione vagabonda a una posizione all'interno della VM con distinzione tra maiuscole e minuscole
    • l'aggiornamento dei file sull'host non sembra generare gli eventi nella VM che ascolta lsync
  • Crea una partizione con distinzione tra maiuscole e minuscole sull'host
    • (Non funziona per Windows)
  • Usa la samba
    • questa potrebbe essere un'opzione, ma non l'abbiamo ancora verificata.

C'è un modo migliore? Tieni presente che gli sviluppatori utilizzano Windows, OS X e Ubuntu e la soluzione deve funzionare ovunque.


Bella domanda, ma troppo orientata allo sviluppo per SF: credo che potresti avere più fortuna con Stack Overflow, aver contrassegnato la migrazione :)
Craig Watson,

1
Onestamente penso che non appartenga a SO in quanto il fatto che questo sia per lo sviluppo è in gran parte irrilevante; la domanda riguarda la distinzione tra maiuscole e minuscole del filesystem in quanto riguarda guest e host vagabondi.
phoebus il

Risposte:


6

Ho risolto il problema su OS X creando un'immagine del disco sparsa nella cartella del mio progetto e formattandola in modo da distinguere tra maiuscole e minuscole.

Dopo aver montato l'immagine sparsa, ho spostato il mio codice su di esso. Quindi ha sostituito la cartella "src" originale con un collegamento simbolico / alias all'immagine montata. In questo modo la cartella condivisa fa distinzione tra maiuscole e minuscole all'interno del sistema operativo guest.

Sicuramente non è la soluzione più elegante ma colma il divario tra ambiente di distribuzione e sviluppo, motivo per cui ho iniziato a utilizzare Vagrant in primo luogo.

Forse una soluzione simile potrebbe funzionare anche per Ubuntu e Windows?


Windows non ha affatto un filesystem sensibile al maiuscolo / minuscolo.
Michael Hampton,

Grazie Jason. Ho considerato questo e funzionerebbe sul mio Mac e Ubuntu, ma non funzionerebbe per Windows. Aggiunge anche un passaggio manuale per la creazione di un ambiente di sviluppo, che avevo sperato di scrivere interamente usando Vagrant / Chef. Tuttavia, potrebbe non esserci un'altra opzione.
Scott Coldwell,

2
La distinzione tra maiuscole e minuscole è uno dei motivi principali per cui mi sono rivolto a Vagrant, dopo anni di utilizzo di MAMP, quindi sono davvero deluso dal fatto che rimanga un problema. Non riesco a credere che questo non sia affermato più chiaramente nei documenti di Vagrant.
Jason Suave,

3
@JasonSuave Il problema è in realtà con VirtualBox e ciò che utilizza per i montaggi, non Vagrant. Vagrant controlla solo i supporti VirtualBox. Potresti avere diverse esperienze su VMWare ... Non ci ho provato.
Brad

0

Ho riscontrato lo stesso problema e il modo in cui l'ho risolto è lavorando facendo funzionare la directory sulla VM tramite clone git e aggiungendo una condivisione Samba che punta ad essa rendendola accessibile sia su Windows che su Mac.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.