Vagrant:如何为Windows主机禁用NFS同步文件夹?

时间:2013-08-26 07:38:53

标签: windows vagrant nfs

我们需要与Linux,MacOS和Windows主机共享VM。但是,对于Linux和MacOS,建议使用NFS共享,但对于Windows,不支持NFS共享。

是否有办法检测主机操作系统是Windows并禁用NFS共享?

1 个答案:

答案 0 :(得分:6)

Vagrant 1.2.5

这实际上已经在Vagrant 1.2.5中进行了处理,请参阅Option for NFS is not silently ignored on windows hosts和相应的提交b2d1a26 (NFS request is silently ignored on Windows)

 
@__synced_folders.each do |id, options|
  # Ignore NFS on Windows
  if options[:nfs] && Vagrant::Util::Platform.windows?
    options[:nfs] = false
  end
end

上一个解决方法

如果您无法升级,可能需要尝试Ryan Seekely的Vagrant and using NFS only on non Windows hosts

  

好吧,因为Vagrantfile只是一个Ruby脚本,我们可以   用Ruby!在Vagrantfile的顶部定义:

def Kernel.is_windows?
    # Detect if we are running on Windows
    processor, platform, *rest = RUBY_PLATFORM.split("-")
    platform == 'mingw32'
end
     

然后在配置共享文件夹时:

nfs = !Kernel.is_windows?
config.vm.share_folder "myfolder", "/srv/www/myfolder.com/", "../", :nfs => nfs

请注意,我实际上没有测试过这个特定的解决方案,但之前我一直在使用概念上类似的方法,尽管在正式提交中使用Vagrant::Util::Platform.windows?(现在没有方便使用它... )。