2013-09-21 10 views
3

Речь идет не о гостевом гостевом или виртуальном боксе, который работает медленно из-за медленного доступа к общей папке, мы знаем, что это можно разрешить более или менее, включив nfs.Vagrant/Virtualbox, общая папка не синхронизирована, когда есть много связанных с файлом операций

Это примерно Установленная общая папка выходит из синхронизации, когда в файле vm существует много файловых операций (включение nfs не предотвращает его).

Например, когда мы устанавливаем пакеты, как с PHP composer или node.js npm внутри виртуальной машины, существует определенная вероятность того, что нормальная composer update или npm install потерпит неудачу, и как только это не удалось, только vagrant reload поможет восстановить папку синхронизации и разрешить прохождение одной и той же команды без проблем.

Такой случайный сбой происходит только при выполнении в общей папке (nfs или нет), поэтому apt-get upgrade не будет запускать ту же проблему, что и в папках vm.

Поскольку такая же проблема синхронизации не возникает, когда мы запускаем композитор или npm с хост-сервера, Мне интересно, что могло бы вызвать его и как мы можем его отладить?

Наша бродячая установки и конфигурации:

if Vagrant::Util::Platform.windows? 
    config.vm.synced_folder "www", "/var/www", :extra => "dmode=777,fmode=777", :owner => "vagrant", :group => "vagrant" 
else 
    config.vm.synced_folder "www", "/var/www", :extra => "dmode=777,fmode=777", :nfs => true 
end 

Гость: Ubuntu 12.04 LTS x64

Хост: Windows 8, Mac OSX 10.8, Ubuntu 13 (да, все они работают в одной и той же задачи случайным образом)

+0

Ошибка обычно не найдена «файл не найден» или «каталог не найден», но они есть на хосте машина, просто отсутствует или остановлена ​​в vm. – bitinn

+0

Мы сейчас на бродячине 1.2.7. – bitinn

ответ

8

Думаю, что мы имеем более или менее обнаружить источник проблемы:

Гость Сложение версия (4.1.x), который поставляется с нашей Ubuntu 12 Поле LTS не соответствует текущей версии Virtualbox (4.2.x), установленной на главной машине. Таким образом, синхронизация файлов завершилась неудачно.

Простое исправление:

  1. запустить эту команду в виртуальной машине sudo apt-get -y -q purge virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 удалить старый Пансион дополнения

  2. установить бродягу vbguest плагиной так будущее обновление позаботится автоматически во время up: https://github.com/dotless-de/vagrant-vbguest

Смежные вопросы