【发布时间】:2016-02-26 12:59:06
【问题描述】:
我想让node 和npm 可用于系统上的任何用户。
在我们的团队中,当有人从 git 更新代码时,他们会运行:sudo -u www-data git pull
所以无论是什么项目,我们总是通过www-data用户。
现在我们有了新的 Node 项目,需要做同样的事情。在我们的生产服务器上,我们不可能依赖一个用户来处理有关节点的所有事情 - 如果他明天离开怎么办?
所以我们没有使用 NVM,而是将 Node 作为 root 安装为 described here
一切正常,所有用户都可以看到node 和npm 可执行文件。当我们真正尝试使用它们时,问题就开始了。
你想做的是:
cd /var/www/node_project
sudo -u www-data git pull
sudo -u www-data npm install
最后一个命令失败,因为npm 正在尝试在我的主目录中写入lock 文件。所以:/home/user/.npm 而不是全局某个地方或 /var/www/.npm 这将是 www-data 用户的主目录。
类似,安装后
sudo npm install -g typings
然后运行sudo -u www-data typings install会出现错误,因为它正在尝试写入/home/user/.config/configstore/insight-typings.json
有人可以详细说明如何在服务器上正确安装节点吗?如果我运行sudo -u www-data,为什么 npm ins 仍然会进入我的主文件夹?
【问题讨论】: