EPROTO:协议错误,符号链接'../semver/bin/semver'使用余烬时 新



我有一个用ubuntu/trusty64 box创建的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链接到命令,这一切都很好,但我在ember new上没有这个选项。

 --no-bin-links

--no-bin-links告诉npm不要创建任何符号链接。

symlink在我的windows框上失败的原因是需要管理员权限。在windows上,需要以管理员身份启动virtualbox才能创建符号链接,而流浪者则需要从提升的命令提示符运行[https://docs.vagrantup.com/v2/virtualbox/common-issues.html](为了与virtualbox交互)

过去的解决方案是

v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]

但这不应该是必要的,因为这是v1.1中virtualbox的默认行为。

如果您使用VirtualBox作为流浪者的提供者,您可以将以下内容添加到您的流浪者文件中

config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end

最新更新