首页 > 解决方案 > npm 通过结构安装

问题描述

尝试在具有 Ubuntu 操作系统的服务器上借助 Fabric 运行“npm install”时出现错误“未找到 npm 命令”

I have installed node version v6.11.0 and npm version 3.10.10 on the server
>  user@ip-xx-xx-xx-xx:~$ npm -v
   > 3.10.10

> user@ip-xx-xx-xx-xx:~$ node -v
  > v6.11.0

system information
cloud provider: aws
OS: 16.04 LTS
---------------------------------------------------------------------------
i have configured fabric on my local machine
 
Fabric versoin

> > user-system@xx-xxx-xxx-xx:fab --version
  > Fabric 1.14.0
  > Paramiko 2.4.0



 deploy():
   require('stage', provided_by=(staging,))
   if env.stage in ['staging']:
      with cd(env.app_dir):
         run(". ~/.nvm/nvm.sh")
         run("export PATH=/home/user/.nvm/versions/node/v6.11.0/bin/node:$PATH")
         run("export PATH=/home/user/.nvm/versions/node/v6.11.0/bin/npm:$PATH")
         run("/home/user/.nvm/versions/node/v6.11.0/bin/npm install")

python 代码正在尝试使用 package.json 文件中的值 avialabe 安装 npm

While executing the Fab script

user@ip-XX_XX_XX_XX:# fab staging:'password' deploy

[server@ip] Executing task 'deploy'

[server@ip] run: . ~/.nvm/nvm.sh
[server@ip] run: export PATH=/home/user/.nvm/versions/node/v6.11.0/bin/node:$PATH
[server@ip] run: export PATH=/home/user/.nvm/versions/node/v6.11.0/bin/npm:$PATH
[server@ip] run: /home/user/.nvm/versions/node/v6.11.0/bin/npm install
[server@ip] out: /usr/bin/env: node: No such file or directory
[server@ip] out: 
Fatal error: run() received nonzero return code 127 while executing!

Requested: /home/user/.nvm/versions/node/v6.11.0/bin/npm install
Aborting.

我的目标是在不以 root 用户身份安装 node 或 npm 的情况下运行命令npm install,但在 nvm 的帮助下,它为特定用户而不是 root 配置 node。


标签: pythonnode.jsnpmnpm-installfabric

解决方案


每个run命令独立运行。如果您想做您正在尝试做的事情,请使用prefix上下文管理器来更新PATH.


推荐阅读