Laravel vagrant/homestead/windows上的npm安装错误:EPROTO:协议错误,符号链接
我正在拉威尔建立我的第一个项目,并试图使用长生不老药,在Windows8.1上使用homestead。我遇到了已知的npm/vagrant问题,路径名太长: 所以我做了那篇文章中推荐的一行编辑(感谢上帝给了那个家伙),然后运行(有sudo和没有sudo): npm安装--无bin链接 这让我走在了前面,所以现在我遇到了两种不同类型的错误:一些“缺少写访问”错误和一堆“EACCES”错误: 错误输出为我提供了清道夫搜寻的下一条线索(我认为): 请以root/管理员身份再次尝试运行此命令 这让我想到了,但对我来说,区别在于,即使在我使用sudo(或像这样更新我的用户权限)之后,也没有任何变化: sudo chown-R$用户/用户/本地 sudo chown-R$(whoami)~/.npm 更新:在下面的建议之后我得到了EPROTO和EXTXTBSY错误(即使在按照提示建议重新命名npm-debug.log之后: 所以我试着运行gulp,看看它是否能给我线索,错误输出让我做了:Laravel vagrant/homestead/windows上的npm安装错误:EPROTO:协议错误,符号链接,laravel,npm,symlink,homestead,Laravel,Npm,Symlink,Homestead,我正在拉威尔建立我的第一个项目,并试图使用长生不老药,在Windows8.1上使用homestead。我遇到了已知的npm/vagrant问题,路径名太长: 所以我做了那篇文章中推荐的一行编辑(感谢上帝给了那个家伙),然后运行(有sudo和没有sudo): npm安装--无bin链接 这让我走在了前面,所以现在我遇到了两种不同类型的错误:一些“缺少写访问”错误和一堆“EACCES”错误: 错误输出为我提供了清道夫搜寻的下一条线索(我认为): 请以root/管理员身份再次尝试运行此命令 这让我想
sudo npm rebuild node-sass
运行时会出现相同的EPROTO和ETXTBSY错误,npm-debug.log文件显示:
错误EPROTO:协议错误,符号链接“../node sass/bin/node sass”->”/home/vagrant/Code/Family laravel/node_modules/laravel elixir/node_modules/gulp sass/node_modules/.bin/node sass'
然后,在做了一个小时的其他工作后,我重新开始了这些步骤,这次错误减少了:
- sudo npm-g安装npm@latest(罚款)
- sudo npm安装——没有bin链接(只有ETXTBSY错误和任务“sass”中插件“运行序列”中的错误)
- sudo npm重建节点sass——无bin链接(无错误!)
- 吞咽(只有一个错误:未找到:通知发送)
越来越近了!几个星期以来,我一直在努力解决这个问题。以下是我在不使用主机环境的情况下所做的工作: 我根据nodesource.com将节点更新至homestead的最新版本:
sudo apt-get install --yes nodejs
curl --silent --location https://deb.nodesource.com/setup_4.x | sudo bash -
我在homestead中将npm更新为最新版本。这应该在更新节点后完成:
sudo npm -g install npm@latest
我在laravel项目目录中运行了npm安装。我还必须使用force来安装所有依赖项:
sudo npm install --no-bin-links
sudo npm cache clear
sudo npm install --force --no-bin-links
我根据gulp错误重建了节点sass:
sudo npm rebuild node-sass --no-bin-links
在整个过程中,如果出现故障或每次安装后,我使用:
sudo npm cache clear
我的主机是windows 10,有最新的virtualbox、最新的vagrant、最新的homestead。我使用git bash作为管理员,使用git bash将ssh转换为vagrant
到目前为止,我只测试并确认了我的gulp是有效的。可能需要重建其他依赖项
希望这能有所帮助!您最初的
错误的原因是您使用了sudo
而没有使用-H
选项。切勿使用sudo npm
。始终使用sudo-H npm
互联网上所有地方(包括NPM文档)的说明都是错误的。你们中的许多人也在用虚拟盒子建立家园
在谷歌搜索解决方案后,我决定参考Laravel Homestead文档。幸运的是,该解决方案发布在那里:
您只需将以下内容添加到您的宅地文件中即可
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
(...)
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
(...)
end
重要
别忘了作为管理员做好准备
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
(...)
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
(...)
end
宅基地——供应
我用下面描述的解决方案解决了我的问题:
主要技巧在于:
vb.customize[“setextradata”,:id,“VBoxInternal2/SharedFolderEnableSymLinksCreate/path/to/guest/shared/directory”,“1”]
希望它能帮助别人我也有同样的问题。我在下面做了。效果很好
npm install --no-bin-links
下面是我在VirtualBox上解决类似问题的方法:
# My Virtualbox image name "centos"
# My shared folder name: localdev
# My mounted directory name on virtualbox: /data
VBoxManage setextradata "centos" VBoxInternal2/SharedFoldersEnableSymlinksCreate/data 1
VBoxManage setextradata "centos" VBoxInternal2/SharedFoldersEnableSymlinksCreate/localdev 1
## see above how i added image name with quotes + my folder names before 1
# I made sure I am running VirtualBox in Administrator Mode
# Boot up the VM and install this:
yum install yarn
# navigate to your code folder and run:
yarn install
谢谢!!!前两个链接似乎很有帮助,因为我在安装sudo npm时不再出现这些“EACCES”错误——没有bin链接——呃,但我应该保持足够的独立性,因为在执行“force”之后,现在我出现了新的EEXIST和ETXTBSY错误:(实际上不是:现在EACCES错误只是出现在我的npm-debug.log中,而不是出现在提示符中):/我现在在上面添加了最新的错误-我从所有论坛帖子中知道,让elixir与我的windows vm一起工作将是可怕的,但是的,它一直在继续:pAnd最后一个问题的答案是:gulp notify:谢谢,stackoverflow universe!sudo npm缓存已清除,解决了一直发生的错误,从2020年开始,我只是想说……这一切都很有效!将该行添加到vagrant并以管理员身份运行它npm安装
没有任何问题!