Für unseren Web-Stack wechseln wir von einem Windows Server zu CentOS. Um die Entwicklung zu vereinfachen, verwenden wir Vagrant, um CentOS-VMs lokal auszuführen. Wir verwenden die Funktion " Synchronisierte Ordner" von Vagrant , damit Entwickler ihre bevorzugten IDEs auf ihrem Host-Computer verwenden können. Wir stellen jedoch fest, dass in diesem Setup eine wichtige Funktion fehlt: die Groß- und Kleinschreibung des Dateisystems.
Der synchronisierte Ordner in der VM übernimmt anscheinend die Eigenschaften des Dateisystems des Hosts. Wenn ich also von einem Windows-Computer oder sogar OSX aus entwickle, unterscheidet das Dateisystem nicht zwischen Groß- und Kleinschreibung. Dies ist ein großes Problem, da unsere Produktionsserver reine CentOS sein werden, und das Dateisystem wird Groß- und Kleinschreibung sein.
Die Groß- und Kleinschreibung ist einer der Hauptgründe, warum wir eine lokale VM haben wollten. Wir möchten verhindern, dass "es auf meinem Computer funktioniert!"
Einige Problemumgehungen, die wir in Betracht gezogen oder ausprobiert haben:
- Verwenden Sie lsyncd, um von der Vagrant-Freigabe zu einem Speicherort innerhalb der VM zu synchronisieren, bei dem zwischen Groß- und Kleinschreibung unterschieden wird
- Das Aktualisieren von Dateien auf dem Host scheint nicht die Ereignisse in der VM zu generieren, die lsync abhört
- Erstellen Sie auf dem Host eine Partition, bei der zwischen Groß- und Kleinschreibung unterschieden wird
- (Funktioniert nicht für Windows)
- Verwenden Sie Samba
- Dies mag eine Option sein, aber wir haben sie noch nicht überprüft.
Gibt es einen besseren Weg? Beachten Sie, dass Entwickler Windows, OS X und Ubuntu verwenden und die Lösung überall funktionieren muss.
quelle
Antworten:
Ich habe das Problem unter OS X umgangen, indem ich ein Image mit geringer Dichte in meinem Projektordner erstellt und es so formatiert habe, dass zwischen Groß- und Kleinschreibung unterschieden wird.
Nachdem ich das spärliche Image gemountet hatte, habe ich meinen Code darauf verschoben. Ersetzen Sie dann den ursprünglichen Ordner "src" durch einen Symlink / Alias zum gemounteten Image. Auf diese Weise unterscheidet der freigegebene Ordner im Gastbetriebssystem zwischen Groß- und Kleinschreibung.
Auf jeden Fall nicht die eleganteste Lösung, aber sie schließt die Lücke zwischen Bereitstellungs- und Entwicklungsumgebung, weshalb ich Vagrant überhaupt erst verwendet habe.
Vielleicht könnte eine ähnliche Problemumgehung auch für Ubuntu und Windows funktionieren?
quelle
Ich bin auf dasselbe Problem gestoßen, und ich habe es behoben, indem ich über einen Git-Klon ein Arbeitsverzeichnis auf der VM abgerufen und eine Samba-Freigabe hinzugefügt habe, die darauf verweist, um es sowohl auf Windows als auch auf Mac zugänglich zu machen.
quelle