Vagrant和在共享文件夹中安装软件包

5
我在Vagrant中安装npm包遇到了问题。
我已经通过SSH登录到了Vagrant,并尝试运行“sudo npm install gulp”,但它在Vagrant与主机之间共享的文件夹中不起作用。
但是,在VM内部纯粹的另一个目录中,它可以完美地工作。
这是我收到的错误的一部分:
npm ERR! Error: ENOENT, chmod '/vagrant/public/laravelproject/node_modules/gulp/node_modules/gulp-util/test/PluginError.js'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 3.2.0-60-generic-pae
npm ERR! command "node" "/usr/local/bin/npm" "install" "gulp" "--save-dev"
npm ERR! cwd /vagrant/public/laravelproject
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.6
npm ERR! path /vagrant/public/laravelproject/node_modules/gulp/node_modules/gulp-util/test/PluginError.js
npm ERR! fstream_path /vagrant/public/laravelproject/node_modules/gulp/node_modules/gulp-util/test/PluginError.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call chmod
npm ERR! code ENOENT
npm ERR! errno 34

有人知道如何让虚拟机完全访问主机上我想要与虚拟机共享的目录吗?这是我的 Vagrant 配置:

Vagrant.configure("2") do |c|
  c.vm.box = "precise32"
  c.vm.box_url = "http://files.vagrantup.com/precise32.box"
  c.vm.network :private_network, ip:"192.168.33.10"
  c.vm.synced_folder "./public", "/var/www/", owner:"root", group:"root"
end

你是在主机还是客户机上安装?两边都使用Linux吗?你在vagrant中使用哪个提供者?我不知道这个错误的来源,但我可以尝试调试一下。 - alex
主机为Windows,虚拟机为Linux Ubuntu Precise 32位,试图从虚拟机安装到与虚拟机共享的主机文件夹中。问题可能出在文件夹权限上。 - Kiee
1个回答

4

好的,经过漫长的搜索,我找到了一个解决方案,虽然不能完全解决问题,但可以实现我想要的功能。

这里是我找到答案的地方:Solution

但基本上运行npm install --no-bin-links [packagename]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接