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
根据你提供的日志信息,当你尝试全局安装 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
安装全局包,并且不会再遇到权限问题。
以上就是解决该问题的几种常见方法,希望对你有所帮助。