问题描述
- node 官网下载 node 后,执行:
node -v // v18.12.1
npm -v // 8.19.2
- 执行 npm install -g npx,报错如下:(无权限)
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/npx
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/npx'
npm ERR! [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/npx'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/npx'
npm ERR! }
- 执行 npm install -g npm,同样报错:
npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! dest /usr/local/lib/node_modules/.npm-i9nnxROI
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/npm' -> '/usr/local/lib/node_modules/.npm-i9nnxROI'
npm ERR! [Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/npm' -> '/usr/local/lib/node_modules/.npm-i9nnxROI'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'rename',
npm ERR! path: '/usr/local/lib/node_modules/npm',
npm ERR! dest: '/usr/local/lib/node_modules/.npm-i9nnxROI'
npm ERR! }
解决方案
sudo chown -R `whoami` /usr/local/lib/node_modules
知识点:
- chown 是修改文件的所有者(owner),和所属组(group)。详见 Linux chown 命令
解释:
sudo chown -R $USER <directory>
给 $USER 增加 directory 及 directory 子目录的权限。
- Shell 变量的表示方法 详见shell 变量
`whoami` 或者 $(whoami)
echo `whoami` // cassie
echo $(whoami) // cassie