Eu quero usar o Vagrant para fornecer um ambiente de desenvolvimento comum para minha equipe. Os anfitriões são completamente diferentes:
- Alguns usam OS X, alguns Linux e alguns Windows.
- Alguns usam VMware, alguns usam VirtualBox.
Dentro da VM, queremos executar o Linux.
Até agora está tudo bem.
Nossa ideia era que cada desenvolvedor fosse capaz de usar o IDE de sua escolha e, portanto, introduzimos uma pasta sincronizada que compartilha o código-fonte entre o host e a VM. Isso basicamente funciona bem ... exceto para links simbólicos.
Dentro de nosso código-fonte, temos alguns links simbólicos, o que não é um problema no Linux dentro da VM, mas no Windows como host isso causa problemas. A única coisa que nós podemos não fazer é se livrar das ligações simbólicas, então precisamos de uma outra maneira de lidar com isso.
Até agora, tentamos várias opções:
- Há uma solução alternativa mencionada em uma edição do Vagrant, infelizmente isso é apenas para o VirtualBox e não ajuda quem executa o VMware. Até agora, não encontramos uma maneira de executar o código no Vagrantfile dependendo do provedor usado.
- Em vez de usar uma pasta compartilhada padrão, agora tentamos usar o tipo rsync . Isso funciona no Windows, mas trava no OS X com uma série de erros informando que o
symlink has no referent
(um erro por link simbólico). - Pensamos no NFS , mas isso só funciona se você não usar o Windows como host.
- Também pensamos sobre o SMB , mas isso só funciona no Windows como host.
Não posso imaginar que sejamos as únicas ou as primeiras pessoas neste planeta a ter problemas com hosts multiplataforma e links simbólicos dentro da pasta compartilhada.
Como você pode resolver esse problema, para que possamos manter links simbólicos, mas ainda usar sistemas operacionais de host diferentes?