Para nossa pilha da Web, estamos migrando de um Windows Server para o CentOS. Para facilitar o desenvolvimento, estamos usando o Vagrant para executar VMs CentOS localmente. Estamos usando o recurso de pastas sincronizadas do Vagrant para permitir que os desenvolvedores usem seus IDEs favoritos em sua máquina host, mas descobrimos que um dos principais recursos está faltando nessa configuração: diferenciação entre maiúsculas e minúsculas no sistema de arquivos.
A pasta sincronizada dentro da VM aparentemente assume as propriedades do sistema de arquivos do host, por isso, se estou desenvolvendo a partir de uma máquina Windows ou até OSX, o sistema de arquivos não diferencia maiúsculas de minúsculas. Esse é um grande problema, pois nossos servidores de produção serão puros no CentOS e seu sistema de arquivos fará distinção entre maiúsculas e minúsculas.
A distinção entre maiúsculas e minúsculas é um dos principais motivos pelos quais queríamos ter uma VM local. Queremos impedir "Funciona na minha máquina!"
Algumas soluções alternativas que consideramos ou tentamos:
- Use lsyncd para sincronizar do compartilhamento vagrant para um local dentro da VM que diferencia maiúsculas de minúsculas
- atualizar arquivos no host não parece gerar os eventos na VM que o lsync escuta
- Faça uma partição que diferencia maiúsculas de minúsculas no host
- (Não funciona no Windows)
- Use samba
- isso pode ser uma opção, mas ainda não a examinamos.
Existe uma maneira melhor? Observe que temos desenvolvedores usando Windows, OS X e Ubuntu, e a solução precisa funcionar em qualquer lugar.