我正在尝试运行npm install并继续获取权限错误,无论我是否以管理员身份运行它。我的环境规格如下。
Windows 7
Virtual Box 5.1
Vagrant 2.0.1
Homestead Box
NPM 5.5.1
NODE 8.9.1
我已经搜索了不同的支持网站,并尝试了建议的修复程序,但我总是得到一个与错误相关的新问题:
npm ERR! ETXTBSY: text file is busy, rmdir
或
npm ERR! Error: EPERM: operation not permitted,
我使用命令`npm install --no-bin-links'它仍然无法正常工作。
sudo npm install --no-bin-links
npm ERR! path /home/vagrant/Code/project/node_modules/sum-up
npm ERR! code EPERM
npm ERR! errno -1
npm ERR! syscall rename
npm ERR! Error: EPERM: operation not permitted, rename '/home/vagrant/Code/project/node_modules/sum-up' -> '/home/vagrant/Code/project/node_modules/.sum-up.DELETE'
npm ERR! { Error: EPERM: operation not permitted, rename '/home/vagrant/Code/project/node_modules/sum-up' -> '/home/vagrant/Code/project/node_modules/.sum-up.DELETE'
npm ERR! cause:
npm ERR! { Error: EPERM: operation not permitted, rename '/home/vagrant/Code/project/node_modules/sum-up' -> '/home/vagrant/Code/project/node_modules/.sum-up.DELETE'
npm ERR! errno: -1,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'rename',
npm ERR! path: '/home/vagrant/Code/project/node_modules/sum-up',
npm ERR! dest: '/home/vagrant/Code/project/node_modules/.sum-up.DELETE' },
npm ERR! stack: 'Error: EPERM: operation not permitted, rename \'/home/vagrant/Code/project/node_modules/sum-up\' -> \'/home/vagrant/Code/project/node_modules/.sum-up.DELETE\'',
npm ERR! errno: -1,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'rename',
npm ERR! path: '/home/vagrant/Code/project/node_modules/sum-up',
npm ERR! dest: '/home/vagrant/Code/project/node_modules/.sum-up.DELETE' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/vagrant/.npm/_logs/2018-01-23T19_51_11_713Z-debug.log
答案 0 :(得分:2)
出现类似错误时,我关闭了Visual Studio代码编辑器并运行npm install。它解决了问题。
答案 1 :(得分:0)
在我的情况下,不确定如何,但似乎外部Windows服务锁定了部分npm文件。所以我不得不在我的流浪汉中安装一个外部文件夹(这是我的项目之外),而且不能直接在Windows中看到,并将此文件夹用作npm node_modules文件夹:
sudo mkdir /node_modules && sudo chmod 777 /node_modules
sudo mount --bind /node_modules /vagrant/real_path_to_your_app/node_modules
还要在/ etc / fstab中添加此行:
/node_modules /vagrant/real_path_to_your_app/node_modules none bind 0 0
然后从/ vagrant / real_path_to_your_app中执行:
/vagrant/real_path_to_your_app$ sudo npm install --save your_module
它对我有用 - 实际上是使用挂载目录/ node_modules。
答案 2 :(得分:0)
潜在的问题与Virtualbox共享如何处理Windows文件锁定有关。无论使用标准共享文件夹(vboxsf)还是nfs,都会发生这种情况。如果npm
尝试更改文件时文件被另一个进程打开或读取(锁定),则整个安装过程将失败。
如何修复:
vagrant up
(和其他命令)。这样可以确保符号链接正常工作。还有其他启用符号链接的方法-如果使用其中之一,请确保使用共享文件夹中的ln -s a b
对其进行测试。如果上述第2点仍然存在问题,则可以使用Process Monitor(已过滤到无业游民目录)来检测除Virtualbox(VBoxHeadless.exe)之外的任何进程的访问。
通过上述操作,我可以成功运行npm install
,而不会出现问题。
答案 3 :(得分:0)
我只需要关闭我的Visual Studio Code IDE,该IDE已打开package.json文件,并在此之后尝试npm install,并且对我有用。
答案 4 :(得分:0)
我在 Eclipse IDE 上遇到了这个错误。解决方法是重启它,然后运行npm install
。之后一切正常。