无法更改npm全球位置

时间:2016-03-09 12:01:32

标签: node.js amazon-ec2 npm nvm

看起来我和npm弄乱了什么,我不知道该怎么做。

环境: - 亚马逊Linux(EC2)

这就是故事:

我用yum安装了nodejs:" yum install nodejs npm --enablerepo = epel"几个月前在我的服务器上。

然后,我知道有节点版本管理器(nvm),所以我删除了我的node.js并安装了nvm,然后安装了最新的node.js

但看起来有些东西搞砸了nvm设置(最近实现了)所以我用nvm删除了nodejs,然后删除了nvm。

然后我用yum命令重新安装了上面的node.js。它看起来很好,nodejs运行良好,但是npm存在很大问题。我用命令" npm root -g"检查了全局模块的位置。作为普通用户(ec2-user),它打印

npm ERR! Error: EACCES, mkdir '/root/.nvm/versions/node/v5.5.0'
npm ERR!  { [Error: EACCES, mkdir '/root/.nvm/versions/node/v5.5.0']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/root/.nvm/versions/node/v5.5.0' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 4.1.13-19.31.amzn1.x86_64
npm ERR! command "node" "/usr/bin/npm" "prefix"
npm ERR! cwd /home/ec2-user/modernator
npm ERR! node -v v0.10.42
npm ERR! npm -v 1.3.6
npm ERR! path /root/.nvm/versions/node/v5.5.0
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/root/.nvm/versions/node/v5.5.0'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ec2-user/modernator/npm-debug.log
npm ERR! not ok code 0

所以我登录到admin,并输入相同的命令" npm root -g",它打印:

/usr/lib/node_modules
当我删除nvm时,看起来有些东西搞砸了。每当我试图改变npm前缀或者只是尝试从npm获得任何配置作为普通用户时,总是失败并出现相同的错误消息!

但是如果我尝试使用sudo(" sudo npm root -g"),它会说" / usr / lib / node_modules"。

我花了几天才解决这个问题,但我还在努力。而且我还不知道我该怎么做。从谷歌找到的每个帖子都没有用。我删除并安装了nodejs很多次,但没有工作。请上帝,如果有人知道如何解决这个问题,请给我一个建议。

1 个答案:

答案 0 :(得分:1)

默认情况下,您无权访问根资源。 执行此操作时:

npm root -g

它为root用户尝试,我打赌你需要更改用户:

npm $USER -g