Laravel vagrant/homestead/windows上的npm安装错误:EPROTO:协议错误,符号链接

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/管理员身份再次尝试运行此命令 这让我想

我正在拉威尔建立我的第一个项目,并试图使用长生不老药,在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,看看它是否能给我线索,错误输出让我做了:

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安装
没有任何问题!