Vagrant-synchronisierte Ordner unterscheiden nicht zwischen Groß- und Kleinschreibung


10

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.


Gute Frage, aber zu entwicklungsorientiert für SF Ich denke - Sie haben vielleicht mehr Glück bei Stack Overflow, haben sich für die Migration gemeldet :)
Craig Watson

1
Ehrlich gesagt denke ich, dass es nicht zu SO gehört, da die Tatsache, dass dies für die Entwicklung ist, weitgehend unerheblich ist; Die Frage bezieht sich auf die Groß- und Kleinschreibung des Dateisystems, da sie sich auf vagabundierende Gäste und Hosts bezieht.
Phoebus

Antworten:


6

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?


Windows hat überhaupt kein Dateisystem, bei dem zwischen Groß- und Kleinschreibung unterschieden wird.
Michael Hampton

Danke Jason. Ich dachte darüber nach und es würde auf meinem Mac und Ubuntu funktionieren, aber nicht unter Windows. Es wird auch ein manueller Schritt zum Erstellen einer Entwicklungsumgebung hinzugefügt, von dem ich gehofft hatte, dass er vollständig mit Vagrant / Chef geschrieben werden kann. Möglicherweise gibt es jedoch keine andere Option.
Scott Coldwell

2
Die Groß- und Kleinschreibung ist einer der Hauptgründe, warum ich mich nach Jahren der Verwendung von MAMP an Vagrant gewandt habe. Daher bin ich wirklich enttäuscht, dass dies weiterhin ein Problem darstellt. Ich kann nicht glauben, dass dies in Vagrants Dokumenten nicht klarer angegeben ist.
Jason Suave

3
@JasonSuave Das Problem liegt tatsächlich bei VirtualBox und dessen Verwendung für die Reittiere, nicht bei Vagrant. Vagrant steuert nur die VirtualBox-Mounts. Möglicherweise haben Sie unterschiedliche Erfahrungen mit VMWare ... Ich habe es nicht versucht.
Brad

0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.