我正在使用Vagrant来存放我的Rails应用程序。不幸的是,我正在使用NFS来安装我的synced文件夹,导致在同步文件夹中读取或写入任何内容时出错; Resque,Solr甚至捆绑。
例如,使用bundle install --path vendor/bundle
会产生:
Bundler :: GemspecError:无法在/var/applications/beatroot/vendor/bundle/ruby/2.1.0/cache/sunspot_rails-2.1.1.gem上读取gem。它可能已损坏。
恢复使用非NFS synced_folder可以解决问题,让我相信这是一个权限问题。不幸的是,性能损失需要使用NFS。
还有其他人遇到过这个吗?有解决方案吗?
主机是OS X 10.9.2,来宾是Ubuntu Precise 64。
我的流浪文件如下所示:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.provider :virtualbox do |virtualbox|
virtualbox.name = "beatroot-development"
virtualbox.memory = 3072
virtualbox.cpus = 4
end
# Provision dependencies from shell
config.vm.provision :sprinkle do |sprinkle|
sprinkle.script = "provisioning/bootstrap_vagrant.rb"
sprinkle.cloud = true
sprinkle.verbose = true
end
# Forward port to Unicorn
config.vm.network :forwarded_port, host: 5009, guest: 5009
# Create a private network to allow for NFS mounting
config.vm.network :private_network, ip: "192.168.50.50"
# Mount our app in the VM
# We use NFS for performance gain
config.vm.synced_folder "./", "/var/applications/beatroot", nfs: true
end