我有一个用ubuntu/trusty64
框创建的Vagrant虚拟机(它运行Ubuntu 14.04.3 LTS(GNU / Linux 3.13.0-66-generic x86_64))和Ruby on Rails,Node.js(5。 x,但之前是0.12)和Ember CLI。
我试图通过运行ember new frontend
创建一个新的Ember应用程序,它总是给我一些错误:
Successfully initialized git.
Installing packages for tooling via npm...
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/acorn/1.2.2/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/npm/2.14.10/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/bower/1.7.0/package.tgz
EPROTO: protocol error, symlink '../semver/bin/semver' -> '/vagrant/emberrails/frontend/node_modules/ember-cli-dependency-checker/node_modules/.bin/semver'
Error: EPROTO: protocol error, symlink '../semver/bin/semver' -> '/vagrant/emberrails/frontend/node_modules/ember-cli-dependency-checker/node_modules/.bin/semver'
at Error (native)
为什么呢?我该如何解决这个问题?
当我尝试通过NPM自行安装某些软件包时会出现此问题,但随后我添加了--no-bin-links命令,这一切都很好,但我没有ember new
上的此选项。
答案 0 :(得分:8)
–no-bin-links
-no-bin-links告诉npm不要创建任何符号链接。
答案 1 :(得分:4)
符号链接在我的Windows框中失败的原因是需要管理员权限。在Windows上需要以管理员身份启动virtualbox以创建符号链接,并且需要从提升的命令提示符[https://docs.vagrantup.com/v2/virtualbox/common-issues.html](in运行以便与虚拟框交互来运行vagrant)
过去的解决方案是
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
但这不应该是必要的,如v1.1中的this is the default behavior of virtualbox。
答案 2 :(得分:0)
如果您使用VirtualBox作为vagrant的提供者,可以将以下内容添加到Vagrantfile
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end