我有一张node:alpine
Docker的图像。当我以根用户身份运行映像时,没有任何问题,但当我使用另一个用户并尝试执行npm install
时,我从包解压缩中收到许多错误:
npm WARN tar EPERM: operation not permitted, futime
在5000条警告消息之后,我在NPM安装日志中看到以下内容:
npm timing action:extract Completed in 276816ms
npm timing action:finalize Completed in 172ms
而且,NPM安装过程完全挂起了。
有谁知道这个错误并知道如何避免它?
6条答案
按热度按时间ivqmmu1c1#
WSL解决方案:
我通过挂载C:/解决了这个问题,并将默认权限绑定到我的用户,而不是超级用户。我跟随向导来到这里:https://devblogs.microsoft.com/commandline/chmod-chown-wsl-improvements/
这将以我的用户而不是超级用户的身份挂载C盘上的所有文件。因此,运行
npm i
不需要sudoxmq68pz92#
在将一个项目从Windows转移到Linux之后,我在Windows Linux子系统中也遇到了这个问题。我没能把它修好
所有这些都没有奏效。
futime
错误是因为tar
实用程序没有足够的权限来执行必要的操作来展开NPM和节点模块使用的.tar文件。在阿尔卑斯Linux的情况下,您可能需要以根用户的身份解压,然后
chown
文件,或者创建一个拥有正确权限的用户拥有的文件夹。对于Windows Subsystem for Linux,它似乎不能处理
/mnt/c
下的文件夹,并且拒绝更改权限。在Linux中设置它们没有任何效果,在Windows中设置它们似乎也没有什么不同--将完全控制权添加到“每个人”的原则中并不能解决这个问题。将文件夹移到WSL文件夹中,例如。
mv project ~
,以便权限正常工作。vuktfyat3#
这不是一个优雅的解决方案,但它奏效了。在您的应用程序目录中:
kx1ctssn4#
在您的计算机上启用“开发人员模式”,然后重新启动以解决此问题!
以下是如何在需要时启用开发人员模式的指南:https://www.wikihow.com/Enable-Developer-Mode-in-Windows-10#/Image:Enable-Developer-Mode-in-Windows-10-Step-5-Version-3.jpg
ffscu2ro5#
如果您在使用多通道或docker等工具时遇到此错误,则只需将主目录或代码所在的任何位置挂载到该环境中即可。您也可能会收到此错误。
在这种情况下,您只需将代码从存储库中拖到该环境中,而不是尝试从主机上处理已挂载的代码,就可以避免此类错误。
这种方式也更干净,因为您不需要根据需要提供更多的权限。这可能永远是一个安全问题。
np8igboo6#
尝试使用此命令可能会有所帮助: