I want to use Vagrant to provide a common development environment to my team. The hosts are completely different:
- Some use OS X, some Linux, and some Windows.
- Some use VMware, some use VirtualBox.
Inside of the VM we want to run Linux.
So far, everything is fine.
Now our idea was that each developer shall be able use the IDE of their choice, and hence we have introduced a synced folder that shares the source code between the host and the VM. This basically, works as well … except for symbolic links.
Inside of our source code we actually do have a few symbolic links, which is not a problem within the Linux inside the VM, but on Windows as host this causes problems. The only thing that we can not do is get rid of the symbolic links, so we need another way to deal with this.
So far, we have tried a number of options:
- There is a workaround mentioned in an issue of Vagrant, unfortunately this is VirtualBox-only and does not help those who run VMware. So far, we haven't found a way of running code in the Vagrantfile depending on the provider used.
- Instead of using a standard shared folder we now have tried using the rsync type. This works on Windows, but crashes on OS X with a number of errors telling us that the
symlink has no referent
(one error per symbolic link). - We thought about NFS, but that only works if you do not use Windows as host.
- We also though about SMB, but this again only works on Windows as host.
I can not imagine that we are the only or the first persons on this planet to experience problems with multi-platform hosts and symbolic links within the shared folder.
How can you solve this issue, so that we can keep symbolic links, but still use different host operating systems?