Shell 错误:EACCES:权限被拒绝,访问'/usr/lib/node#u模块';
我正在尝试使用命令npm install-g typescript安装typescript,它返回以下错误:Shell 错误:EACCES:权限被拒绝,访问'/usr/lib/node#u模块';,shell,npm,Shell,Npm,我正在尝试使用命令npm install-g typescript安装typescript,它返回以下错误: npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules' npm ERR! at Error (native) npm ERR! { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path npm-debug.log.1024969454
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: 'npm-debug.log.1024969454' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /npm-debug.log
jramirez@jramirez:/$ ^C
jramirez@jramirez:/$ npm install typescript
npm WARN checkPermissions Missing write access to /
/
└── typescript@2.5.2
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path /
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/'
npm ERR! at Error (native) errno: -13, code: 'EACCES', syscall: 'access', path: '/' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 4.4.0-93-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript"
npm ERR! node v6.11.2
npm ERR! npm v3.10.10
npm ERR! path npm-debug.log.2387664261
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open
npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'open',
npm ERR! path: 'npm-debug.log.2387664261' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /npm-debug.log
此外,我运行了npm install typescript
(不带-g),但它不起作用。有没有其他安装typescript的方法?
我的操作系统是Linux Ubuntu 16.04。
我很少使用节点
,也不知道如何解决这个问题
我的问题是:究竟哪些目录需要该权限?在ubuntu中安装全局软件包时,在写入
usr/bin
文件夹时需要特殊的写入权限。这是出于安全考虑
因此,每次安装全局软件包时,请使用:
sudo npm安装-g[软件包名称]
针对您的具体情况:
sudo npm安装-g typescript
当您在不使用-g
的情况下尝试时,您所做的全部工作就是在您所在的任何文件夹中本地安装软件包:
因此:npm install typescript
将在您所在的文件夹中创建一个node\u modules
文件夹。这对我很有效
sudo npm install -g coffee-script
然后
不建议将sudo与npm安装一起使用,请按照NPMJ官方文档中的步骤操作:) 为全局安装创建目录:
mkdir ~/.npm-global
配置npm以使用新的目录路径:
npm config set prefix '~/.npm-global'
打开或创建~/.profile文件并添加此行:
export PATH=~/.npm-global/bin:$PATH
返回命令行,更新系统变量:
source ~/.profile
测试:不使用sudo全局下载包
npm install -g typescript
资料来源:
我在全球范围内安装webpack服务器时遇到了同样的问题,使用步骤解决了我的问题,我的工作将为您服务 上面提到的步骤是:在开始之前备份计算机 为全局安装创建目录:
mkdir ~/.npm-global
1<代码>mkdir~/.npm全局
配置npm以使用新的目录路径:
npm config set prefix '~/.npm-global'
2<代码>npm配置集前缀“~/.npm global”
打开或创建~/.profile文件并添加此行:
export PATH=~/.npm-global/bin:$PATH
3<代码>导出路径=~/.npm全局/bin:$PATH
返回命令行,更新系统变量:
source ~/.profile
4<代码>源~/.profile
测试:不使用sudo全局下载包
npm install -g typescript
npm安装-g jshint
您可以使用相应的ENV变量(例如,如果您不想修改~/.profile),而不是步骤2-4:
NPM\u CONFIG\u PREFIX=~/.NPM global
1)转到目录/usr/local/lib/node\u modules”
2)单击文件夹并右键单击获取信息
3)单击右下角的锁
4)输入您的窗口密码以解锁
5)检查轮的值和每个人的值读和写
6)返回您的终端,再次尝试安装Typescript不太确定这是否是解决此问题的正确方法,但我希望这可以帮助其他类似情况的用户,他们已经尝试了以下方法:
- 应用
- 检查了
文件夹的正确权限,未发现任何错误节点\u模块
- 使用了带有或不带有
的-g
(我无论如何都不推荐的解决方案),但没有预期的结果sudo npm安装
npm
安装axios
包时,包含整个项目的目录在visualstudio代码中打开,这个问题的解决方案就指出了。所以我关闭了它并再次尝试安装。
令人惊讶的是,这个装置工作得很有魅力
为了尝试复制相同的问题,我在WSL上使用了Ubuntu18.04LTS(可能这与Windows权限有关)
这也可能是这个问题的解决方案:
请关注npm网站-
“如果在尝试全局安装软件包时看到EACCES错误,您可以:
使用节点版本管理器重新安装npm(推荐),
或
手动更改npm的默认目录“
我按照推荐的方式安装了nvm。它解决了我的问题Try
sudo npm安装-g typescript
You save my day dude。它工作得很好,谢谢。是否应该将步骤3导出路径=“~/.npm global/bin:$PATH”
放入。bash\u别名
(包含在.bashrc
,或直接在那里…)以实现持久性?推荐的解决方案(Y)这是一个更好的答案。不要摆弄sudo
或目录权限。如果您使用的是Z shell(Zsh)然后将export PATH=~/.npm global/bin:$PATH
添加到您的~/.zshrc
中,然后获取文件源在/usr/lib/node_modules/
上使用chmod g+rw
是否会大错特错?您不应该将sudo与npm安装一起使用。sudo不应该与npm一起使用的概念是错误的,也不符合标准在UNIX指定的位置安装全局二进制文件的范例。请尽量避免在npm安装中使用sudo,这可能会对安全性造成危险。遵循NPMJ官方文件中提供的步骤wheel
是一种BSD/RedHat功能,在基于Debian的系统(如Ubuntu)中不起作用