Shell 错误:EACCES:权限被拒绝,访问'/usr/lib/node#u模块';

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 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!     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)中不起作用