我想使用 Vagrant 为我的团队提供一个通用的开发环境。主机完全不同:
- 有些使用 OS X,有些使用 Linux,有些使用 Windows。
- 有些使用VMware,有些使用VirtualBox。
我们想要在虚拟机内部运行 Linux。
到目前为止,一切都很好。
现在我们的想法是每个开发人员都应该能够使用他们选择的 IDE,因此我们引入了一个同步文件夹,用于在主机和虚拟机之间共享源代码。基本上,除了符号链接之外,这也可以工作。
在我们的源代码中,我们实际上确实有一些符号链接,这在虚拟机内的 Linux 中不是问题,但在作为主机的 Windows 上这会导致问题。我们唯一能做的就是not要做的就是摆脱符号链接,所以我们需要另一种方法来处理这个问题。
到目前为止,我们已经尝试了多种选择:
- 中提到了一个解决方法issue https://github.com/mitchellh/vagrant/issues/713#issuecomment-4416384Vagrant 的版本,不幸的是,这仅适用于 VirtualBox,对运行 VMware 的用户没有帮助。到目前为止,我们还没有找到运行代码的方法流浪文件取决于所使用的提供商。
- 我们现在尝试使用rsync http://docs.vagrantup.com/v2/synced-folders/rsync.html类型。这在 Windows 上有效,但在 OS X 上崩溃,并出现许多错误,告诉我们
symlink has no referent
(每个符号链接一个错误)。
- 我们想过NFS http://docs.vagrantup.com/v2/synced-folders/nfs.html,但这仅在您不使用 Windows 作为主机时有效。
- 我们也想过SMB http://docs.vagrantup.com/v2/synced-folders/smb.html,但这同样仅适用于 Windows 作为主机。
我无法想象我们是这个星球上唯一或第一批遇到多平台主机和共享文件夹内符号链接问题的人。
如何解决这个问题,以便我们可以保留符号链接,但仍然使用不同的主机操作系统?
接受的答案不好。该问题描述了一个问题synced文件夹,not shared文件夹。建议的解决方案对 rsynced 没有影响(未共享) 文件夹。即使OP使用的是shared文件夹,接受的答案的建议是自 1.1 起已集成到 vagrant 中,在 OP 发布问题前 15 个月发布 https://github.com/mitchellh/vagrant/issues/713#issuecomment-13201507(更何况VirtualBox 的共享文件夹速度非常慢 http://mitchellh.com/comparing-filesystem-performance-in-virtual-machines).
我遇到了同样的问题:在 OS X 上,我得到了symlink has no referent
r同步错误。我个人能够通过将特定的 rsync 参数添加到我的vagrantfile
:
config.vm.synced_folder ".", "/var/www", type: "rsync", rsync__args: ["--verbose", "--archive", "--delete", "-z"]
I also 打开这个问题 https://github.com/mitchellh/vagrant/issues/5471在 vagrant 的 github 上指出其默认值似乎有问题的地方rsync__args
(具体来说,默认参数之一,--copy-links
,似乎正在破坏另一个,--archive
,至少就复制损坏的符号链接而言)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)