我们需要与Linux,MacOS和Windows主机共享VM。但是,对于Linux和MacOS,建议使用NFS共享,但对于Windows,不支持NFS共享。
是否有办法检测主机操作系统是Windows并禁用NFS共享?
答案 0 :(得分:6)
这实际上已经在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?
(现在没有方便使用它... )。