gpt4 book ai didi

node.js - 尝试在远程计算机上运行 "npm install"时飞行计划脚本失败

转载 作者:搜寻专家 更新时间:2023-10-31 23:53:10 24 4
gpt4 key购买 nike

我的飞行计划脚本如下所示:

// run commands on remote hosts (destinations)
plan.remote(function(remote) {
remote.log('Copy to remote host in folder: ' + tmpDir);
remote.sudo('cp -R /tmp/' + tmpDir + ' ~', {user: username});

remote.log('Delete temporary local directory');
remote.rm('-rf /tmp/' + tmpDir);
remote.log('Install dependencies');
remote.exec('cd ' + tmpDir);
remote.sudo('npm --production install', {user: username});
remote.log('Reload application');
remote.sudo('ln -snf ~/' + tmpDir + ' ~/' + appName, {user: username});

});

脚本运行良好,直到遇到“npm --production install”行。

这是日志:

Copy to remote host in folder: node-app-1452386549897
104.131.12.146 $ sudo -u deploy -i bash -c 'cp -R /tmp/node-app-1452386549897 ~'
104.131.12.146 ● ok
104.131.12.146 Delete temporary local directory
104.131.12.146 $ rm -rf /tmp/node-app-1452386549897
104.131.12.146 ● ok
104.131.12.146 Install dependencies
104.131.12.146 $ cd node-app-1452386549897
104.131.12.146 ● ok
104.131.12.146 $ npm --production install
104.131.12.146 > bash: npm: command not found
failed(127)

虽然它说找不到 npm 命令.. 该命令在远程机器上非常存在

知道是什么导致了这个问题吗?

这是部署用户(具有 sudo 能力)在远程机器上的路径

/home/deploy/.nvm/v4.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

这是 root 用户在远程机器上的路径:

/root/.nvm/v4.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

这是 npm 的路径:

/home/deploy/.nvm/v4.2.2/bin/npm
/root/.nvm/v4.2.2/bin/npm

我分别为 root 和 deploy 安装了它

最佳答案

刚刚找到问题的解决方案:Remote context in unexpected state .

nvm默认在非交互状态下执行shell时不加载。

解决这个问题:

打开您的 /root/.bashrc 文件,将与 nvm 相关的行移动到 [ -z "$PS1"] && return 之前表达。

最后你会得到这样的东西:

export NVM_DIR="/root/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -z "$PS1" ] && return

关于node.js - 尝试在远程计算机上运行 "npm install"时飞行计划脚本失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34702006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com