首页 > 开发 > NodeJS > 正文

关于linux系统下使用npm全局安装hexo报错的问题

2017-09-08 17:10:57  来源:网友分享

最近我的电脑换成了ubuntu系统,然后安装完node以后开始装hexo,代码如下:

npm install hexo-cli -g  

然后控制台出现如下错误:

npm ERR! path ../lib/node_modules/hexo-cli/bin/hexonpm ERR! code EACCESnpm ERR! errno -13npm ERR! syscall symlinknpm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules/hexo-cli/bin/hexo' -> '/usr/local/bin/hexo'npm ERR!  { Error: EACCES: permission denied, symlink '../lib/node_modules/hexo-cli/bin/hexo' -> '/usr/local/bin/hexo'npm ERR!   cause: npm ERR!    { Error: EACCES: permission denied, symlink '../lib/node_modules/hexo-cli/bin/hexo' -> '/usr/local/bin/hexo'npm ERR!      errno: -13,npm ERR!      code: 'EACCES',npm ERR!      syscall: 'symlink',npm ERR!      path: '../lib/node_modules/hexo-cli/bin/hexo',npm ERR!      dest: '/usr/local/bin/hexo' },npm ERR!   stack: 'Error: EACCES: permission denied, symlink \'../lib/node_modules/hexo-cli/bin/hexo\' -> \'/usr/local/bin/hexo\'',npm ERR!   errno: -13,npm ERR!   code: 'EACCES',npm ERR!   syscall: 'symlink',npm ERR!   path: '../lib/node_modules/hexo-cli/bin/hexo',npm ERR!   dest: '/usr/local/bin/hexo' }npm ERR! npm ERR! Please try running this command again as root/Administrator.npm ERR! A complete log of this run can be found in:npm ERR!     /home/ggboy/.npm/_logs/2017-09-06T12_32_32_667Z-debug.log

有人能说一下这是怎么回事吗?node的版本号是8.4.0npm的版本号是5.3.0(ps:我是用node源码安装的nodejs

解决方案

目录没有写入权限,可以使用sudo暴力解决,但极不推荐。

npm可以设置全局包目录的位置,设置到有权限的位置就好了。手机答题不方便查命令。

指定npm全局安装包时的安装位置,一般在家目录范围下,这样写入权限就不是问题:

$ cd ~ && mkdir .node_modules_global$ npm config set prefix=$HOME/.node_modules_global

查看效果:

$ npm config get prefix/home/<user_name>/.node_modules_global$ cat .npmrcprefix=/home/<user_name>/.node_modules_global

安装最新npm:

npm install npm --global

设置环境变量,使安装的包能够被终端环境寻找到,添加下面语句到.profile、.bash_profile或.bashrc并重启终端:

export PATH="$HOME/.node_modules_global/bin:$PATH"

查看效果:

which npm

再试试安装你的包