Nodejs npm install -g sumeru 问题,系统是mac osx

Nodejs npm install -g sumeru 问题,系统是mac osx

$ npm install -g sumeru npm http GET https://registry.npmjs.org/sumeru npm http 200 https://registry.npmjs.org/sumeru npm http GET https://registry.npmjs.org/sumeru/-/sumeru-0.8.1.tgz npm http 200 https://registry.npmjs.org/sumeru/-/sumeru-0.8.1.tgz npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/sumeru’ npm ERR! { [Error: EACCES, mkdir ‘/usr/local/lib/node_modules/sumeru’] npm ERR! errno: 3, npm ERR! code: ‘EACCES’, npm ERR! path: ‘/usr/local/lib/node_modules/sumeru’, npm ERR! fstream_type: ‘Directory’, npm ERR! fstream_path: ‘/usr/local/lib/node_modules/sumeru’, npm ERR! fstream_class: ‘DirWriter’, npm ERR! fstream_stack: npm ERR! [ ‘/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23’, npm ERR! ‘/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53’, npm ERR! ‘Object.oncomplete (fs.js:107:15)’ ] } npm ERR! npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.4.0 npm ERR! command “node” “/usr/local/bin/npm” “install” “-g” "sumeru" npm ERR! cwd /Volumes/Data/nodeworkspace/cloudaApp npm ERR! node -v v0.10.17 npm ERR! npm -v 1.3.8 npm ERR! path /usr/local/lib/node_modules/sumeru npm ERR! fstream_path /usr/local/lib/node_modules/sumeru npm ERR! fstream_type Directory npm ERR! fstream_class DirWriter npm ERR! code EACCES npm ERR! errno 3 npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/sumeru’ npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23 npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Volumes/Data/nodeworkspace/cloudaApp/npm-debug.log npm ERR! not ok code 0


4 回复

根据你提供的日志信息,当你尝试全局安装 sumeru 包时,遇到了权限问题。具体错误信息是 EACCES,这表示你没有足够的权限去写入 /usr/local/lib/node_modules 目录。

解决方案

方法一:使用 sudo

最简单的解决方法是使用 sudo 命令来提升权限,这样可以让你以管理员身份运行命令:

sudo npm install -g sumeru

但请注意,这种方法可能会带来安全风险,因为它会赋予该命令超级用户权限。

方法二:更改 npm 的默认安装目录

为了避免每次都需要使用 sudo,你可以修改 npm 的配置,将全局包安装到一个你有写权限的目录中。

首先,创建一个新的目录用于存放全局 npm 包:

mkdir ~/.npm-global

然后,配置 npm 使用这个新目录:

npm config set prefix '~/.npm-global'

接下来,你需要更新你的 shell 配置文件(如 .bashrc.zshrc),添加以下行:

export PATH=~/.npm-global/bin:$PATH

最后,重新加载 shell 配置文件:

source ~/.bashrc   # 如果你使用的是 bash
# 或者
source ~/.zshrc    # 如果你使用的是 zsh

现在,你可以全局安装 sumeru 而不需要使用 sudo

npm install -g sumeru

总结

以上两种方法都可以解决你在 macOS 上安装全局 npm 包时遇到的权限问题。推荐使用第二种方法,因为它更安全,并且避免了每次都使用 sudo 带来的潜在风险。


这不是提示得很明确吗?你得以超级用户的身份执行安装命令。

$ sudo npm install -g sumeru

不好意思,以前一直用windows系统,对unix命令不熟。 按照你的提示,问题解决了,谢谢!

根据你提供的错误信息,问题出在权限不足上。npm install -g sumeru 命令尝试将 sumeru 全局安装到 /usr/local/lib/node_modules/sumeru 目录下,但由于权限不足导致操作失败。

解决方案

你可以通过以下几种方式解决这个问题:

方法一:使用 sudo

最简单的方式是使用 sudo 提升当前命令的权限:

sudo npm install -g sumeru

执行上述命令时,需要输入你的用户密码。这种方式适用于临时提升权限进行安装操作。

方法二:修改文件夹权限

另一种方法是修改 /usr/local/lib/node_modules 文件夹的权限,以便当前用户可以直接写入该目录。这可以通过以下命令实现:

sudo chown -R $(whoami) /usr/local/lib/node_modules

这条命令会将 /usr/local/lib/node_modules 及其所有子目录和文件的所有权修改为当前用户,这样就不需要每次安装全局包时都使用 sudo

方法三:配置 npm 使用自定义全局安装路径

你也可以选择配置 npm 使用自定义的全局安装路径,避免权限问题。首先创建一个自定义目录用于全局安装包,然后设置 npm 使用这个目录:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

接下来,编辑你的 shell 配置文件(如 .bashrc, .zshrc),添加以下行:

export PATH=~/.npm-global/bin:$PATH

最后,重新加载 shell 配置文件:

source ~/.bashrc  # 或 source ~/.zshrc

现在,你可以使用 npm install -g sumeru 安装全局包,并且不会再遇到权限问题。

以上就是解决该问题的几种常见方法,希望对你有所帮助。

回到顶部