Tom*_*mas 5 linux git ubuntu node.js
我希望系统上的任何用户都可以使用它node。npm
在我们的团队中,当有人从 git 更新代码时,他们会运行:sudo -u www-data git pull
所以无论是什么项目,我们总是要经过www-data用户。
现在我们有了新的 Node 项目,需要做同样的事情。在我们的生产服务器上,我们不可能依赖一个用户来处理有关节点的所有事情 - 如果他明天离开怎么办?
因此,我们不使用 NVM,而是按照此处所述以 root 身份安装 Node
一切都很好,所有用户都可以看到node并且npm可执行。当我们真正尝试使用它们时,问题就开始了。
你想做的是:
cd /var/www/node_project
sudo -u www-data git pull
sudo -u www-data npm install
Run Code Online (Sandbox Code Playgroud)
这在最后一个命令上失败,因为npm正在尝试lock在我的主目录中写入文件。所以:/home/user/.npm而不是全局某个地方或者/var/www/.npmwww-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 仍然进入我的主文件夹?
您可以指定某个用户的全局安装目录:
设置prefix = ~/.where_to_install在~/.npmrc
然后在 PATH 变量中添加可执行文件的正确位置(例如~/.npm/bin)
顺便说一句,您的情况下 www-data 的主目录是什么?
| 归档时间: |
|
| 查看次数: |
3224 次 |
| 最近记录: |