Ubuntu19.04下安装NVM节点但本地pm2部署生产更新会报pm2: command not find等错误
在远程服务器上
root@vultr:/usr/bin# git --version
git version 2.20.1
root@vultr:/usr/bin# nvm --version
0.34.0
root@vultr:/usr/bin# node -v
v10.15.3
root@vultr:/usr/bin# npm -v
6.4.1
在本地服务器上
pm2 deploy production update
--> Deploying to production environment
--> on host 202.182.98.13
○ deploying origin/master
○ executing pre-deploy-local
○ hook pre-deploy
○ fast forward master
Already on 'master'
Your branch is up to date with 'origin/master'.
From github.com:zq0904/pm2
Updating d79b633..2fe1d22
Fast-forward
README.md | 3 ++-
ecosystem.config.js | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
* branch master -> FETCH_HEAD
d79b633..2fe1d22 master -> origin/master
○ executing post-deploy `git pull && npm install && pm2 reload ecosystem.config.js --env production`
Already up to date.
npm WARN [email protected] No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
up to date in 3.997s
pm2: command not found
post-deploy hook failed
Deploy failed
1
我可以在远程服务器上完成
whereis npm
lh -s /root/.nvm/versions/node/v10.15.3/bin/node /usr/bin/node
lh -s /root/.nvm/versions/node/v10.15.3/bin/npm /usr/bin/npm
lh -s /root/.nvm/versions/node/v10.15.3/bin/pm2 /usr/bin/pm2
这样就解决问题了, 但我不明白为什么, 服务器已经可以输出npm节点pm2等版本, 但为什么一定要设置软连接呢? 有什么好的办法解决这个麻烦的问题吗? 非常感谢!
我不确定这个问题的根本原因是什么。但是,当我在 AWS EC2 ubuntu 实例中创建一个新用户并尝试通过该新用户使用 pm2 部署我的 NodeJS 应用程序时,这种情况就发生在我身上。
.bashrc
文件中注释以下行即可
#If not running interactively, don 't do anything
case $ - in
*
i * );;
*) return;;
esac
.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# >>> COMMENT OPUT THE FOLLOWING LINES >>>
# If not running interactively, don't do anything
# case $- in
# *i*) ;;
# *) return;;
# esac
如果您安装了 ubuntu 系统,请尝试以下操作:-
sudo npm i -g pm2
然后从您的文件开始
pm2启动生态系统.config.js