npm global install on elastic beanstalk

时间:2022-08-25 09:27:55

I am running into an issue installing pm2 globally on aws elastic beanstalk. I created the following script for installing pm2:

我遇到了在aws弹性beanstalk上全局安装pm2的问题。我创建了以下用于安装pm2的脚本:

option_settings:
  - option_name: NODE_ENV
    value: production
container_commands:
  01_enable_rootaccess:
    command: echo Defaults:root \!requiretty >> /etc/sudoers 
  02_install_imagemagic:
    command: yum install -y ImageMagick
  03_download_new_relic:
    command: rpm -Uvh http://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm 
    ignoreErrors: true
  04_install_new_relic:
    command: yum install -y newrelic-sysmond
    ignoreErrors: true
  05_add_license_key:
    command: /usr/sbin/nrsysmond-config --set license_key=xxxxxxx
    ignoreErrors: true
  06_start_new_relic:
    command: /etc/init.d/newrelic-sysmond start
    ignoreErrors: true
  07_install_pm2:
    command: sudo /opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/npm install pm2 -g
    ignoreErrors: true    
  08_stop_old_pm2_processes:
    command: sudo /opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/pm2 delete all
    ignoreErrors: true
  09_start_pm2:
    command: sudo /opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/pm2 startup -u ec2-user
    ignoreErrors: true

I have tried using just 'pm2 delete all' and 'pm2 startup' for commands 8 & 9 put i just get command not found. when i give the specific path to pm2(i logged on to the ec2 and verified) i get "line 4: exec: : not found". any idea what i am doing wrong here? Thanks in advance for your help!

我已经尝试使用'pm2 delete all'和'pm2 startup'来执行命令8和9 put i just get command not found。当我给pm2的特定路径(我登录到ec2并验证)时,我得到“第4行:exec :: not found”。知道我在这里做错了什么吗?在此先感谢您的帮助!

2 个解决方案

#1


5  

I managed to install pm2 globally on elastic beanstalk with the following code snippet embedded in an .ebextensions/your_file_name.config file

我设法在弹性beanstalk上全局安装pm2,并在.ebextensions / your_file_name.config文件中嵌入了以下代码片段

container_commands:
  01_node_symlink:
    command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/node /bin/node"
  02_npm_symlink:
    command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/npm /bin/npm"
  03_pm2_install:
    command: "if [ ! -e /bin/pm2 ]; then npm install pm2 -g; fi"
    ignoreErrors: true

#2


0  

You may need to ensure that the nodejs-legacy module is installed. If pm2 is depending on the executable named node, that will fail when the system installs it globally as nodejs as some Linux systems (Ubuntu, Debian) often do.

您可能需要确保已安装nodejs-legacy模块。如果pm2取决于名为node的可执行文件,那么当系统将其作为nodejs全局安装时,它将失败,因为某些Linux系统(Ubuntu,Debian)经常这样做。

#1


5  

I managed to install pm2 globally on elastic beanstalk with the following code snippet embedded in an .ebextensions/your_file_name.config file

我设法在弹性beanstalk上全局安装pm2,并在.ebextensions / your_file_name.config文件中嵌入了以下代码片段

container_commands:
  01_node_symlink:
    command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/node /bin/node"
  02_npm_symlink:
    command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/npm /bin/npm"
  03_pm2_install:
    command: "if [ ! -e /bin/pm2 ]; then npm install pm2 -g; fi"
    ignoreErrors: true

#2


0  

You may need to ensure that the nodejs-legacy module is installed. If pm2 is depending on the executable named node, that will fail when the system installs it globally as nodejs as some Linux systems (Ubuntu, Debian) often do.

您可能需要确保已安装nodejs-legacy模块。如果pm2取决于名为node的可执行文件,那么当系统将其作为nodejs全局安装时,它将失败,因为某些Linux系统(Ubuntu,Debian)经常这样做。