Vagrant 同步文件夹不区分大小写

Sco*_*ell 10 virtualbox case-sensitive vagrant lsyncd

对于我们的 Web 堆栈,我们正在从 Windows Server 迁移到 CentOS。为了促进开发,我们使用 Vagrant 在本地运行 CentOS 虚拟机。我们正在使用 Vagrant 的同步文件夹功能来允许开发人员在他们的主机上使用他们最喜欢的 IDE,但我们发现此设置中缺少一个关键功能:文件系统区分大小写。

VM 内的同步文件夹显然具有主机文件系统的属性,因此如果我是从 Windows 机器甚至 OSX 开发的,文件系统不区分大小写。这是一个大问题,因为我们的生产服务器将是纯 CentOS,其文件系统区分大小写。

区分大小写是我们想要拥有本地 VM 的主要原因之一。我们想防止“它在我的机器上工作!”

我们考虑或尝试过的一些解决方法:

  • 使用lsyncd从 vagrant 共享同步到 VM 中区分大小写的位置
    • 更新主机上的文件似乎不会在 lsync 侦听的 VM 中生成事件
  • 在主机上做一个区分大小写的分区
    • (不适用于 Windows)
  • 使用桑巴
    • 这可能是一种选择,但我们尚未对其进行审查。

有没有更好的办法?请注意,我们有使用 Windows、OS X 和 Ubuntu 的开发人员,并且该解决方案需要适用于任何地方。

Jas*_*ave 6

我通过在我的项目文件夹中创建一个稀疏磁盘映像并将其格式化为区分大小写来解决 OS X 上的问题。

安装稀疏图像后,我将代码移到它上面。然后用符号链接/别名替换原来的“src”文件夹到挂载的图像。这样,共享文件夹在来宾操作系统中区分大小写。

绝对不是最优雅的解决方案,但它确实缩小了部署和开发环境之间的差距,这就是我首先开始使用 Vagrant 的原因。

也许类似的解决方法也适用于 Ubuntu 和 Windows?

  • @JasonSuave 问题实际上在于 VirtualBox 及其用于安装的内容,而不是 Vagrant。Vagrant 只控制 VirtualBox 的挂载。你可能对 VMWare 有不同的体验……我没试过。 (3认同)
  • 在使用 MAMP 多年后,区分大小写是我转向 Vagrant 的主要原因之一,所以我真的很失望它仍然是一个问题。我不敢相信这在 Vagrant 的文档中没有更清楚地说明。 (2认同)