【发布时间】:2021-05-15 10:32:37
【问题描述】:
当我尝试通过 sudo npm install -g npm 更新 npm 时,Ubuntu 给了我错误
操作系统版本是Ubuntu,运行在WSLVersion 20H2 (OS build 19042.746)下,我在老版本的Win10上没有遇到过问题。
root@DESKTOP-D03G7FK:~# sudo npm update npm -g
npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/yargs-parser
npm ERR! dest /usr/lib/node_modules/.staging/yargs-parser-b095ed45
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/yargs-parser' -> '/usr/lib/node_modules/.staging/yargs-parser-b095ed45'
npm ERR! [OperationalError: EACCES: permission denied, rename '/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/yargs-parser' -> '/usr/lib/node_modules/.staging/yargs-parser-b095ed45'] {
npm ERR! cause: [Error: EACCES: permission denied, rename '/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/yargs-parser' -> '/usr/lib/node_modules/.staging/yargs-parser-b095ed45'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'rename',
npm ERR! path: '/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/yargs-parser',
npm ERR! dest: '/usr/lib/node_modules/.staging/yargs-parser-b095ed45'
npm ERR! },
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'rename',
npm ERR! path: '/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/yargs-parser',
npm ERR! dest: '/usr/lib/node_modules/.staging/yargs-parser-b095ed45'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-02-12T12_53_38_994Z-debug.log
问题还没解决,我切换到WSL2,因为WSL有Linux内核,所有问题都解决了,我认为是WSL的bug。
【问题讨论】:
-
你会这样使用 sudo:
sudo npm update npm -g吗? -
@Mohammad Yaser Ahmadi 当然,我使用root权限运行命令,我想也许我应该提供Windows版本,这可能是WSL的问题。
-
@mikemaccana 感谢您的链接,它似乎不在 WSL 中,我试过了,它不起作用。
-
@mikemaccana 既然你问我朋友,我可以继续使用旧版本的 npm,没问题。
标签: node.js npm windows-subsystem-for-linux