'sudo npm install -g npm'失败



当我尝试通过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。

我在过去的两天里也遇到了同样的问题,但是,唉,我设法找到了一个解决方案。

首先,您需要安装nvm。您可以在这里找到最新版本并下载:nvm for windows

选择nvm-setup.zip,然后继续执行安装过程。

之后,打开你的windows终端,然后尝试输入nvm -v,看看它是否成功安装并有最新版本。

如果一切正常,输入nvm install node

这将更新您的节点到最新可用的版本。

使用sudo /usr/bin/npm install -g npm更新npm…这将引导使用使用Ubuntu包管理器安装的旧版本的npm。

当你安装了多个版本的npm或nodejs时,在启动时总是使用全路径,否则你可能会在运行时出现错误。

最新更新