gpt4 book ai didi

synchronization - Vagrant 中的符号链接(symbolic link)和同步文件夹

转载 作者:行者123 更新时间:2023-12-03 04:56:48 24 4
gpt4 key购买 nike

我想使用 Vagrant 为我的团队提供一个通用的开发环境。主机完全不同:

  • 有些使用 OS X,有些使用 Linux,有些使用 Windows。
  • 有些使用 VMware,有些使用 VirtualBox。

我们想要在虚拟机内部运行 Linux。

到目前为止,一切都很好。

现在我们的想法是每个开发人员都应该能够使用他们选择的 IDE,因此我们引入了一个同步文件夹,用于在主机和虚拟机之间共享源代码。这基本上也可以工作......除了符号链接(symbolic link)。

在我们的源代码中,我们实际上确实有一些符号链接(symbolic link),这在虚拟机内的 Linux 中不是问题,但在作为主机的 Windows 上这会导致问题。我们唯一不能做的就是删除符号链接(symbolic link),因此我们需要另一种方法来处理这个问题。

到目前为止,我们已经尝试了多种选择:

  • issue 中提到了一种解决方法Vagrant 的版本,不幸的是,这仅适用于 VirtualBox,对运行 VMware 的用户没有帮助。到目前为止,我们还没有找到在 Vagrantfile 中运行代码的方法,具体取决于所使用的提供程序。
  • 我们现在尝试使用rsync,而不是使用标准共享文件夹。类型。这在 Windows 上有效,但在 OS X 上崩溃,并出现许多错误,告诉我们符号链接(symbolic link)没有引用(每个符号链接(symbolic link)一个错误)。
  • 我们考虑过 NFS ,但这仅在您不使用 Windows 作为主机时有效。
  • 我们还考虑过 SMB ,但这同样仅适用于 Windows 作为主机。

我无法想象我们是这个星球上唯一或第一批遇到多平台主机和共享文件夹内符号链接(symbolic link)问题的人。

如何解决这个问题,以便我们可以保留符号链接(symbolic link),但仍然使用不同的主机操作系统?

最佳答案

接受的答案不好。该问题描述了同步文件夹的问题,共享文件夹的问题。建议的解决方案对 rsynced(非共享)文件夹没有影响。即使OP使用共享文件夹,接受的答案的建议也是already been integrated into vagrant as of 1.1, released 15 months before the OP posted the question (更不用说VirtualBox's shared folders are abysmally slow)。

<小时/>

我遇到了同样的问题:在 OS X 上,我收到 symlink has noreferent rsync 错误。我个人能够通过向我的 vagrantfile 添加特定的 rsync 参数来解决这个问题:

config.vm.synced_folder ".", "/var/www", type: "rsync", rsync__args: ["--verbose", "--archive", "--delete", "-z"]
<小时/>

我也opened this issue在 vagrant 的 github 上指出 rsync__args 的默认值似乎有问题(具体来说,默认参数之一 --copy-links 似乎破坏另一个,--archive,至少就复制损坏的符号链接(symbolic link)而言)。

关于synchronization - Vagrant 中的符号链接(symbolic link)和同步文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24200333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com