Quiero utilizar Vagrant para proporcionar un entorno de desarrollo común a mi equipo. Los anfitriones son completamente diferentes:
- Algunos usan OS X, algunos Linux y algunos Windows.
- Algunos usan VMware, algunos usan VirtualBox.
Dentro de la VM queremos ejecutar Linux.
Hasta ahora todo está bien.
Ahora nuestra idea era que cada desarrollador pudiera usar el IDE de su elección y, por lo tanto, hemos introducido una carpeta sincronizada que comparte el código fuente entre el host y la VM. Básicamente, esto también funciona ... excepto para los enlaces simbólicos.
Dentro de nuestro código fuente tenemos algunos enlaces simbólicos, lo cual no es un problema dentro de Linux dentro de la VM, pero en Windows como host esto causa problemas. La única cosa que podemos no hacer es deshacerse de los enlaces simbólicos, por lo que necesitamos otra manera de lidiar con esto.
Hasta ahora, hemos probado varias opciones:
- Hay una solución alternativa mencionada en un problema de Vagrant, desafortunadamente esto es solo para VirtualBox y no ayuda a quienes ejecutan VMware. Hasta ahora, no hemos encontrado una forma de ejecutar código en Vagrantfile dependiendo del proveedor utilizado.
- En lugar de usar una carpeta compartida estándar, ahora hemos intentado usar el tipo rsync . Esto funciona en Windows, pero se bloquea en OS X con una serie de errores que nos indican que
symlink has no referent
(un error por enlace simbólico). - Pensamos en NFS , pero eso solo funciona si no usa Windows como host.
- También pensamos en SMB , pero esto nuevamente solo funciona en Windows como host.
No puedo imaginar que seamos los únicos o las primeras personas en este planeta en experimentar problemas con hosts multiplataforma y enlaces simbólicos dentro de la carpeta compartida.
¿Cómo puede resolver este problema, de modo que podamos mantener enlaces simbólicos, pero seguir utilizando diferentes sistemas operativos de host?