Atualize o nó 0.12.x para o nójs 4.4.x usando pm2

1

Eu uso PM2 para executar meus processos de nó em produção (no Ubuntu 14.04). Após o upgrade do nó 0.12.x para nodejs 4.4.x , o comando para executar o nó (js) foi alterado de node para nodejs . Eu segui as instruções nas instruções de instalação da distribuição do nós-fonte.

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

O PM2 ainda deseja chamar node , mesmo que a versão mais recente use o comando nodejs . Eu o hackeei substituindo o binário do nó por um link sim como este:

mv /opt/bitnami/nodejs/bin/node /opt/bitnami/nodejs/bin/node.old
ln -s /usr/bin/nodejs /opt/bitnami/nodejs/bin/node

e isso parece funcionar bem. Mas preferiria simplesmente alterar uma configuração no PM2 para apontar para o novo binário.

Qual é a melhor maneira de tornar o pm2 compatível com um upgrade para o nodejs 4.4.x?

Atualizar : estes são os locais em que o node existe neste servidor

root@ip-172-30-1-190:/usr/bin# find / -name "node" -type f
/opt/bitnami/nodejs/bin/node
/var/lib/dpkg/alternatives/node
/usr/local/bin/node
/usr/local/n/versions/node/4.4.1/bin/node

Eu originalmente tentei atualizar o nó usando npm e o n package usando este tutorial , que representa o /usr/local/n/versions/node/4.4.1/bin/node linha.

    
por steampowered 05.04.2016 / 21:54

2 respostas

0

Use o NVM, que é um gerenciador de pacotes NodeJS com muitos colaboradores e aceitação pela comunidade NodeJS. link

Esta pergunta também é respondida no Stackoverflow: link

Advertência : nvm é instalado no diretório inicial do usuário. Portanto, se você usar outra ferramenta para gerenciar processos de nó, como pm2 , precisará especificar o novo nome do processo do nó ( nodejs vs node ) para experimentar a versão nvm conjuntos (se for de v0.12.x para v4.x por exemplo). Isso ocorre porque o nvm vincula node a nodejs somente no perfil do usuário instalado.

    
por 09.04.2016 / 19:50
0

Se você tivesse node e nodejs em seu sistema, por que você remove node ?
O que é /opt/bitnami/nodejs/bin/node ? Esse não é um caminho oficial nem para node nem nodejs .

Ao instalar o node.js 4.x, o Ubuntu configurou seu sistema para que node seja apenas um nome alternativo para o novo binário nodejs para não quebrar os sistemas existentes. Então, no seu caso, você não deveria ter criado o symlink.

É assim que seu sistema deve ser configurado:

root@server:~# update-alternatives --get-selections | grep node
js                             auto     /usr/bin/nodejs
node                           auto     /usr/bin/nodejs

Como você excluiu manualmente o link node , a saída do comando acima pode ser a mesma, mas provavelmente está quebrada. A menos que você precise do programa Nó de Núcleo de Pacotes Amador (nó) , eu sugiro que você o conserte e deixe o Ubuntu manter links simbólicos determinando comandos padrão.

# Remove the symlink and remove the rest of a broken "update-alterantive" configuration:

unlink /opt/bitnami/nodejs/bin/node
unlink /opt/bitnami/nodejs/bin/node.old
update-alternatives --remove-all node
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
    
por 05.04.2016 / 23:54

Tags