Ruby on rails 4 使用Vagrant&;输入/输出错误;温菲尔德

Ruby on rails 4 使用Vagrant&;输入/输出错误;温菲尔德,ruby-on-rails-4,vagrant,windows-8.1,ubuntu-14.04,nfs,Ruby On Rails 4,Vagrant,Windows 8.1,Ubuntu 14.04,Nfs,我正在使用插件在Windows8.1主机上添加对Vagrant的NFS支持。我正在运行Ubuntu14.04 guest 我正在使用此设置运行Rails应用程序。除了Rails/Carrierwave试图从tmp目录中删除文件时,所有操作都运行良好,这会产生以下错误: Errno::EIO (Input/output error @ dir_s_rmdir - /vagrant/myproject/public/uploads/tmp/1421108602-18479-5242): 这是我流浪

我正在使用插件在Windows8.1主机上添加对Vagrant的NFS支持。我正在运行Ubuntu14.04 guest

我正在使用此设置运行Rails应用程序。除了Rails/Carrierwave试图从tmp目录中删除文件时,所有操作都运行良好,这会产生以下错误:

Errno::EIO (Input/output error @ dir_s_rmdir - /vagrant/myproject/public/uploads/tmp/1421108602-18479-5242):
这是我流浪者档案的相关部分:

config.vm.network "private_network", type: "dhcp"
config.vm.synced_folder ".", "/vagrant", type: "nfs"

关于如何解决这个问题有什么想法吗?

我终于能够通过使用其中一个GitHub票证中的建议来解决这个问题

基本上,它包括将Rails和Carrierwave指向/vagrant文件夹外的目录,以将tmp文件转储到其中,以避免遇到任何锁定/权限问题:

# config/initializers/01_patch_tmpdir.rb

class Dir
  def self.tmpdir
    '/home/vagrant/rails_tmp/'
  end
end

CarrierWave.configure do |config|
  config.cache_dir = '/home/vagrant/uploads_tmp/tmp/uploads'
  config.root = '/home/vagrant/uploads_tmp/tmp'
end

ENV['TMPDIR'] = Dir.tmpdir

现在,您可以继续将该文件添加到.gitignore中,这样就不会妨碍其他人处理您的项目。

这些文件是从来宾创建的还是主机上已经存在?这有可能是某种权限错误吗?@MichaelS文件上传到主机上,临时文件是由运行在留言簿上的应用程序创建的,就像winnfsd的问题:@MichaelS是的,我希望有人能解决这个问题。嗯,我想你不会使用Virtualbox的共享文件夹,因为它非常慢,但是,如何替代NFS呢?