As pastas sincronizadas do Vagrant não diferenciam maiúsculas de minúsculas

10

Para nossa pilha da web, estamos nos movendo de um servidor Windows para o CentOS. Para facilitar o desenvolvimento, estamos utilizando o Vagrant para rodar VMs do CentOS localmente. Estamos usando o recurso Pastas Sincronizadas do Vagrant para permitir que os desenvolvedores usem seus IDEs favoritos em sua máquina host , mas estamos descobrindo que um dos principais recursos está faltando nessa configuração: a diferenciação de maiúsculas e minúsculas do sistema de arquivos.

A pasta sincronizada dentro da VM aparentemente assume as propriedades do sistema de arquivos do host, portanto, se eu estiver desenvolvendo a partir de uma máquina Windows, ou até mesmo do OSX, o sistema de arquivos não faz distinção entre maiúsculas e minúsculas. Este é um grande problema, já que nossos servidores de produção serão puramente o CentOS, e seu sistema de arquivos será sensível a maiúsculas e minúsculas.

A diferenciação de maiúsculas e minúsculas é uma das principais razões pelas quais desejamos ter uma VM local. Queremos evitar "Funciona na minha máquina!"

Algumas soluções alternativas que consideramos ou tentamos:

  • Use lsyncd para sincronizar do compartilhamento do 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 lsync escuta
  • Criar uma partição com diferenciação de maiúsculas e minúsculas no host
    • (não funciona para o Windows)
  • Use samba
    • isso pode ser uma opção, mas ainda não a verificamos.

Existe uma maneira melhor? Observe que temos desenvolvedores usando o Windows, o OS X e o Ubuntu, e a solução precisa funcionar em qualquer lugar.

    
por Scott Coldwell 05.11.2013 / 20:21

2 respostas

6

Trabalhei em torno do problema no OS X criando uma imagem de disco esparsa na pasta do meu projeto e formatando-a para diferenciar maiúsculas e minúsculas.

Depois de montar a imagem esparsa, movi meu código para ela. Em seguida, substituiu a pasta "src" original por um symlink / alias para a imagem montada. Desta forma, a pasta compartilhada diferencia maiúsculas de minúsculas dentro do sistema operacional convidado.

Definitivamente, não é a solução mais elegante, mas fecha a lacuna entre o ambiente de implantação e desenvolvimento, e é por isso que comecei a usar o Vagrant em primeiro lugar.

Talvez uma solução semelhante funcione para o Ubuntu e o Windows também?

    
por 08.11.2013 / 16:49
0

Eu encontrei o mesmo problema e a maneira como resolvi isso foi conseguindo o diretório de trabalho na VM por meio do git clone e adicionando uma parte do Samba apontando para ele, tornando-o acessível tanto no Windows quanto no Mac.

    
por 26.09.2017 / 11:20