EACCES关于WSL Debian上npm全新安装的问题,试图更新到最新版本

时间:2019-03-16 00:07:08

标签: node.js npm

大家好,我从Debian的全新wsl distrib开始,并在其上安装了nodejs和npm。

当尝试使用以下命令更新到npm的最新版本时:

  

sudo npm install npm @ latest -g

从互联网研究中我看到了一些奇怪的问题,这些问题在wsl上似乎很常见,唯一的答案似乎可行,但未能真正解决,问题是使用以下命令将不安全权限设置为true:

  

npm config设置为unsafe-perm true

我会避免使用此方法,而是找到一种更干净的方法来解决此问题。

这是控制台输出:

####@#####:~$ sudo npm install npm@latest -g
npm ERR! path /usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/wrap- 
ansi
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall rename
npm ERR! Error: EACCES: permission denied, rename 
'/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/wrap-ansi' -> 
'/usr/lib/node_modules/.staging/wrap-ansi-9f8997e7'
npm ERR!  { [Error: EACCES: permission denied, rename 
'/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/wrap-ansi' -> 
'/usr/lib/node_modules/.staging/wrap-ansi-9f8997e7']
npm ERR!   cause:
npm ERR!    { Error: EACCES: permission denied, rename 
'/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/wrap-ansi' -> 
'/usr/lib/node_modules/.staging/wrap-ansi-9f8997e7'
npm ERR!      errno: -13,
npm ERR!      code: 'EACCES',
npm ERR!      syscall: 'rename',
npm ERR!      path:
npm ERR!       '/usr/lib/node_modules/.staging/npm- 
18aca6f9/node_modules/wrap-ansi',
npm ERR!      dest: '/usr/lib/node_modules/.staging/wrap-ansi-9f8997e7' },
npm ERR!   stack:
npm ERR!    "Error: EACCES: permission denied, rename 
'/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/wrap-ansi' -> 
'/usr/lib/node_modules/.staging/wrap-ansi-9f8997e7'",
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'rename',
npm ERR!   path:
npm ERR!    '/usr/lib/node_modules/.staging/npm-18aca6f9/node_modules/wrap- 
ansi',
npm ERR!   dest: '/usr/lib/node_modules/.staging/wrap-ansi-9f8997e7' }
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 (though this is not 
recommended).

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-03-15T23_53_32_851Z-debug.log

我遵循nodejs网站的文档以root模式使用curl进行安装,以获取最新的11.x版本的节点的存储库。

谢谢!

1 个答案:

答案 0 :(得分:0)

仅在FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("Login.fxml")); Parent root = loader.load(); 上的WSL Ubuntu发行版中遇到此问题。

即使在我的node_modules目录中使用rename之后,npm update上也会发生。

我正在解决的方法是简单地避免使用chown而改用update(从技术上来说,npm install npm @ x也是一个更新)。我知道这很麻烦,但除此之外,我不确定如何使它工作。 重命名目录的命令会触发此操作,但不会在installcreate上触发。