【问题标题】:impossible to use npm as sudo with nvm不可能将 npm 用作带有 nvm 的 sudo
【发布时间】:2015-09-19 17:00:53
【问题描述】:

我已经使用 nvm 文档安装了 node/npm。

卷曲 -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh |重击

然后我安装它:

nvm 安装稳定

然后我必须这样做:

nvm 使用节点

npm 正在工作,但如果我想在全局范围内安装一个包,它就不起作用了。

sudo npm install -g 包

我有这个:

sudo: npm: 找不到命令

我看过很多主题,但我并没有真正理解符号链接或类似的东西。 我正在使用 ubuntu 14.04

【问题讨论】:

    标签: node.js ubuntu npm sudo nvm


    【解决方案1】:

    nvm 维护者在这里 - 使用http://nvm.sh,您应该永远需要使用 sudo。

    另外,nvm 是每个用户的 - 意思是,sudo 用户不会在其 shell 环境中拥有它,并且它的 PATH 无论如何都不会正确设置。

    只需执行npm install -g package,它就会完美运行:-)

    另外,如果你使用nvm alias default node,你就不必每次打开一个新的shell 时都使用nvm use

    【讨论】:

    • 所以如果我不必使用 sudo 我该如何解决这个问题:错误:EACCES:尝试访问我家中的 .npm 时权限被拒绝
    • 在使用 nvm 之前,您可能已经使用 sudo 安装了 node/npm。我的建议是 sudo chown 你的整个主目录,以便你拥有它,并卸载 node/npm 的系统版本。
    • @LJHarb npm start 需要管理员权限。但不能用 sudo 运行。那该怎么办?
    • @bazi 为什么npm start 需要管理员权限?也许thomashunter.name/blog/using-authbind-with-node-js 会对你有所帮助。
    【解决方案2】:

    为什么不以普通用户的身份安装全局包?

    npm install -g package
    

    【讨论】:

    • 因为我有错误:EACCES:尝试访问我家中的 .npm 时权限被拒绝
    • 因为之前是用 sudo 创建的。尝试删除文件夹(只需重命名),然后执行各种npm install -g package
    【解决方案3】:

    我在topic 中找到了答案。

    这是因为我使用 sudo 安装它。 我必须执行这些命令:

    sudo chown -R $USER ~/.npm
    sudo chown -R $USER /usr/local/lib/node_module
    

    现在可以了

    【讨论】:

    • 当使用nvm时,/usr/local/lib/node_module也不应该被使用。你在~/.npmrc 中设置了prefix 吗?如果是,请删除它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多