npm: ошибка при установке пакетов в Vagrant

Во время выполнения команды npm install в расшаренной директории Vagrant (Windows хост, Ubuntu гостевая) происходит ошибка вида protocol error, symlink '../acorn/bin/acorn' -> '/vagrant/node_modules/.bin/acorn'. Эта распространенная проблема при работе с пакетными менеджерами в Vagrant под Windows и связана с некорректной работой симлинков при стандартном VirtualBox-ом механизме синхронизации папок между Windows хостом и Linux гостем. Решается либо сменой способа синхронизации, либо отказом от использования симлинков.

У npm к счастью есть опция отказа от симлинков:

npm install --no-bin-links

Windows, Vagrant, Virtualenv — Protocol error

При попытке инициализировать виртуальное окружение в расшареной папке Вагранта под Виндоус получаю ошибку OSError: [Errno 71] Protocol error.

Лечится вызовом виртуаленв с опцией —always-copy.

virtualenv -p python3 env --always-copy

Vagrant — не обновляются файлы в расшаренной папке

Сетап такой: Windows 7 на хост машине и CentOS 7 на гостевой машине. Вагрант при таком сочетании выбрал механизм синхронизации расшаренных папок rsync (можно увидеть при старте виртуальной машины). Отлично, но rsync не умеет отслеживать изменения в файлах в реальном времени, только по явной команде. Эта команда Вагрантом вызывается только при старте или перезагрузке машины — vagrant up или vagrant reload соответственно.

Вручную можно вызвать так.

vagrant rsync

Или можно заставить rsync все-таки отслеживать изменения файлов, но тогда придется оставить процесс запущенным в терминале на все время работы с виртуальной машиной

vagrant rsync-auto

Подробности можно найти в блоге Вагранта.