我想使用Vagrant为我的团队提供一个共同的开发环境。主机完全不同:
- 有些人使用OS X,有些人使用Linux,还有些人使用Windows。
- 有些人使用VMware,有些人使用VirtualBox。
在虚拟机内部,我们想要运行Linux。
到目前为止,一切都还好。
现在我们的想法是,每个开发人员都可以使用他们选择的IDE,因此我们引入了一个同步文件夹,在主机和虚拟机之间共享源代码。这基本上工作正常......除了符号链接。
实际上,我们在源代码中确实有一些符号链接,在虚拟机内部的Linux中不是问题,但在Windows主机上会导致问题。我们唯一不能做的事情就是摆脱符号链接,所以我们需要另一种处理方法。
到目前为止,我们尝试了许多选项:
- 在Vagrant的一个问题中提到了一种解决方法,不幸的是,这仅适用于VirtualBox,不能帮助那些运行VMware的人。到目前为止,我们没有找到在Vagrantfile中根据使用的提供程序运行代码的方法。
- 我们现在尝试使用rsync类型而不是使用标准共享文件夹。这在Windows上可以工作,但在OS X上崩溃,并且会产生许多错误,告诉我们
symlink has no referent
(每个符号链接一个错误)。 - 我们考虑过NFS,但只有在不使用Windows作为主机时才能使用。
- 我们还考虑过SMB,但这仅适用于Windows作为主机的情况。
我无法想象我们是地球上唯一或第一个遇到多平台主机和共享文件夹中符号链接问题的人。
如何解决这个问题,以便我们可以保留符号链接,但仍然可以使用不同的主机操作系统?